谢谢。
我加到OnInitDialog函数里也行,应该加到哪里?

解决方案 »

  1.   

    上面写错了,我写到OnInitDialog函数里,不行。
    ……
      

  2.   

    程序启动的时候后,最小化显示可以吗?ShowWindow(SW_SHOWMINIMIZED);或者ShowWindow(SW_MINIMIZE);
      

  3.   

    其实,创建图标后将窗口Show hide就行了
      

  4.   

    看代码:
    void CMP3PlayerDlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    {
    CAboutDlg dlgAbout;
    dlgAbout.DoModal();
    }
    else if(nID == SC_MINIMIZE)
    {
    ModifyStyleEx(0,WS_EX_TOOLWINDOW);//取消任务栏显示
    ShowWindow(SW_HIDE);//隐藏
                      //上面两行代码可以根据情况看是否需要
    AddIcon();//调用添加系统托盘的函数
    }
    else
    {
    CDialog::OnSysCommand(nID, lParam);
    }
    }
      

  5.   

    要用非模式对话框才可以,
    用vc向导生成的对话框工程不行D,要自己改改
      

  6.   

    在App的InitInstance()中:
    CMainDlg *pDlg = new CMainDlg;
    m_pMainWnd = pDlg;
    pDlg->Create(IDD_MAINDLG, NULL);
    pDlg->ShowWindow(SW_MINIMIZE);
    CMainDlg 是主窗口类, IDD_MAINDLG是你的主窗口资源ID
      

  7.   

    上面最后一句应该是pDlg->ShowWindow(SW_HIDE);
      

  8.   

    其实这就是启动时隐藏窗体,具体方法有很多种,如1,在OnInitDialog() 中加SetWindowsPos,将其坐标移到屏幕外
    2,在OnPaint中添加ShowWindow(SW_HIDE),但有点闪硕。
    3,拦截消息,eg
    LRESULT CMyDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
    {
    if(message==133)
             ShowWindow(SW_HIDE);
    return CDialog::DefWindowProc(message, wParam, lParam);
    }4,使用无模式对话框(这也是我认为最好的一种),并将对话框属性Visible不勾,这样启动就隐藏了
      

  9.   

    定时器
    在OnInitDialog() 定时