感谢您使用微软产品。
调用ShowWindow(SW_HIDE)会把DIALOG隐藏起来,而不是在任务栏中显示为一个图标,你可以在OnPaint()里面调用ShowWindow(SW_HIDE);
如果想要在任务栏中显示为一个图标,在OnPaint()里面调用ShowWindow(SW_MINIMIZE)。- 微软亚洲技术中心 VC技术支持本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款 (http://www.csdn.net/microsoft/terms.shtm)。

解决方案 »

  1.   

    OnInitDialog中添加
        
    WINDOWPLACEMENT wp;
        wp.length=sizeof(WINDOWPLACEMENT);    wp.flags=WPF_SETMINPOSITION;
        wp.showCmd=SW_SHOWMINIMIZED;

    int xSize=::GetSystemMetrics(SM_CXSCREEN);
    int ySize=::GetSystemMetrics(SM_CYSCREEN); CRect rect;
    GetWindowRect(&rect);
    rect.OffsetRect((xSize-rect.Width())/2,(ySize-rect.Height())/2); wp.rcNormalPosition=rect;
             SetWindowPlacement(&wp);  
      

  2.   

    MS的回答上路!
    顶楼的,OnInitUpdate之后还要调用OnPaint,所以在那里做手脚没有用的,要在OnPaint里搞东东。
    楼上的意思也差不多,不过兜圈子了。
      

  3.   

    呵呵,我前几天刚做过类似的例子。
    我的做发是:重载WindowProc
    然后。switch(messge){
            case SYSTEMCOMMAND:
                    if(wParam==SC_MINIMIZE){
                         AfxGetApp()->m_pMainWnd()->ShowWindow(SW_HIDE);
                          return 0;
                     }
             ......
                             
          }
      

  4.   

    OnInitDialog()中加this->ShowWindow(SW_MINIMIZE);再处理最小化到任务栏中