使用
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);用这种办法打开的新画面任务栏上没有显示这个新画面的任务!
请问怎么设置才能显示出来?
谢谢
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);用这种办法打开的新画面任务栏上没有显示这个新画面的任务!
请问怎么设置才能显示出来?
谢谢
解决方案 »
- 软件注册模块--如何获取收集到的用户信息
- MFC ActiveX工程的VARIANT_BOOL参数算不算bug
- 怎样才能将在网关抓到的数据包的IP包头等数据去掉呢?
- VC的一些#ifdef STRICT #ifdef UNICODE 是什么意思,什么时候能用到呢
- 怎么样更改dellcache文件中的文件!
- 关于时间的计算?
- 用CEditView的SetWindowText函数后,怎么把滚动条和文本都滚动到最末尾一行.
- 如何在CRichEditCtrl或CRichEditView里画一些线条作为背景(100分)
- 高手请进!
- 关于让程序窗口弹出的问题,欢迎深入细致的分析和讨论
- 问一下现在有没有复用端口的tunnel软件?
- 关于快速的刷新问题
另外,你的变量命名很不规范,很容易让别人混淆!!
// 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;
}
更具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);
pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, this);
这个函数上面
pMain->m_pMainC2Menu->Create(IDD_NEWPWS_MENU, AfxGetMainWnd());Window - 〉画面, 你在哪学到这样称呼的? 我是第一次见啊。
pMain->m_pMainMenu->ShowWindow(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);
是一样的,还是不显示
pMain->m_pCmenu->Create(IDD_DIALOG1, pMain->m_pCmenu);
可以解决,但子窗体就不知道parent是谁了
,必须使用一个变量保存父窗体的cwnd。
但我不希望这样做,现在的项目是平台转换,需要一个source被vcw和dsw分别使用,修改别人的代码和结构变化越少越好