本帖最后由 novaliang 于 2009-08-12 11:20:30 编辑

解决方案 »

  1.   

    Dialog 程序不再任务栏里显示方法:
    在 App的 InitInstance() 函数里加(如:BOOL CUApp::InitInstance())        CFrameWnd *parentWnd   =   new   CFrameWnd();    //新加语句
    parentWnd->Create(   0,   0,   WS_OVERLAPPEDWINDOW   );  //新加语句 CYOUDlg dlg(parentWnd);    //修改语句   CYOUDlg  是主对话框类
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    ........................
    在 BOOL CYOUDlg ::OnInitDialog()  加入
    ModifyStyleEx(WS_EX_APPWINDOW,0); 
      

  2.   

    谢谢,我忘了说了,我的应用程序是SDI的,不是对话框。
      

  3.   

    晕,单文档  BOOL   CMainFrame::PreCreateWindow(CREATESTRUCT&   cs)     
      {     
              if   (!CFrameWnd::PreCreateWindow(cs))   return   FALSE;     
              if   (!m_bOwnerCreated)   //   "dialog-is-created"   flag     
              {     
                      //   m_MainFrameOwner   -   CDialog   object   mapped   to   the   resource   dialog   template     
                      m_bOwnerCreated   =   m_MainFrameOwner.Create(IDD_FRAMEOWNER);     
                      if   (m_bOwnerCreated)   m_MainFrameOwner.ShowWindow(SW_HIDE);     
              };     
        
              //   set   the   dialog   as   a   parent   of   CMainFrame   window     
              if   (m_bOwnerCreated)     
              cs.hwndParent   =   m_MainFrameOwner.GetSafeHwnd();     
        
              return   TRUE;     
      }     
        
        
      BOOL   CMainFrame::ShowTaskBarButton(BOOL   bVisible)     
      {     
              if   (!m_bOwnerCreated)   return   FALSE;     
        
              ShowWindow(SW_HIDE);   
        
              if   (bVisible)     
                      ModifyStyleEx(0,   WS_EX_APPWINDOW);     
              else     
                      ModifyStyleEx(WS_EX_APPWINDOW,   0);   
        
              ShowWindow(SW_SHOW);   
        
              return   TRUE;     
      }