使用
CSeDBApp *pMain;
pMain = (CSeDBApp *)AfxGetApp();  
// 新画面申请
pMain->m_pMainC2Menu = new CC2Menu;
pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
pMain->m_pMainC2Menu->ShowWindow(SW_SHOW);
//当前画面隐藏
pMain->m_pMainMenu->ShowWindow(SW_HIDE);用这种办法打开的新画面任务栏上没有显示这个新画面的任务!
请问怎么设置才能显示出来?
谢谢

解决方案 »

  1.   

    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);改为:pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, NULL);
    另外,你的变量命名很不规范,很容易让别人混淆!!
      

  2.   

    还可用以下代码来实现,在使用之前必须用::CoInitialize(NULL)初始化com库.//-----------------------------------------------------------------
    // Show or Hide window in the taskbar
    //-----------------------------------------------------------------
    BOOL CLQApp::ShowInTaskbar(HWND hWnd, BOOL bShow)
    {
    HRESULT hr; 
        ITaskbarList* pTaskbarList;
    hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,  
                IID_ITaskbarList, (void**)&pTaskbarList );
    hr = pTaskbarList->HrInit();
    if(bShow)
    hr = pTaskbarList->AddTab(hWnd);
    else
    hr = pTaskbarList->DeleteTab(hWnd); pTaskbarList->Release();

    return SUCCEEDED(hr) ? TRUE : FALSE;
    }
      

  3.   

    to mynamelj(风之羽翼) 
    更具msdn
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, NULL);
    2句效果是一样的。null的时候会自动把本窗口id交给子窗口,所以问题依旧写了一个测试程序,用以下的问题能解决,但子窗就找不到parent()了
    CTestApp *pMain;
    pMain = (CTestApp *)AfxGetApp();  
    this->ShowWindow(SW_HIDE);
    pMain->m_pCmenu = new Cmenu;
    pMain->m_pCmenu->Create(IDD_DIALOG1, pMain->m_pCmenu);
    pMain->m_pCmenu->ShowWindow(SW_SHOW);
      

  4.   

    所以问题确定在
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
    这个函数上面
      

  5.   


    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, AfxGetMainWnd());Window - 〉画面, 你在哪学到这样称呼的? 我是第一次见啊。
      

  6.   

    //当前画面隐藏
    pMain->m_pMainMenu->ShowWindow(SW_MINIMIZE);
      

  7.   

    SW_MINIMIZE不对的,会有一个可见的最小化动作且界面变化有问题!再描述一下:
    pMain->m_pMainMenu->ShowWindow(SW_HIDE);
    主窗体使用这个语句使窗体不可见后,使用
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
    语句创建的新窗体就不会在任务栏上面显示,问题就在于create时候传递parent窗体,以及parent窗体被隐藏了!
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, NULL);
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, AfxGetMainWnd());
    效果和
    pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
    是一样的,还是不显示
      

  8.   

    用这个语句
    pMain->m_pCmenu->Create(IDD_DIALOG1, pMain->m_pCmenu);
    可以解决,但子窗体就不知道parent是谁了
    ,必须使用一个变量保存父窗体的cwnd。
    但我不希望这样做,现在的项目是平台转换,需要一个source被vcw和dsw分别使用,修改别人的代码和结构变化越少越好