我现在也正在做这个问题,找了半天只有这一个方法其他都不行。不知道你有什么好方法没?
在Hide.cpp中InitInstance()
CHideDlg dlgParent;
dlgParent.Create(IDD_HIDE_DIALOG);
dlgParent.ShowWindow(SW_HIDE);
//dlgParent.ShowWindow(SW_SHOW);
CHideDlg dlg(&dlgParent);
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
dlgParent.DestroyWindow();
这样做的结果如果在CHideDlg.cpp中OnInitDialog()添加了加载图标菜单等都被加载俩次。所以我的做法是新加了一个什么都不显示的对话框ABC
我的代码
在Hide.cpp中InitInstance()
CAbcDlg dlg;
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
……
在Abc的OnCreate中(OnInitDialog里也可以吧)
if (dlg.DoModal() == IDOK) /*这个dlg是我在Abc中定义的类全局变量 CHideDlg dlg;*/
OnOK();
else
OnCancel();
我这样虽然间接实现了不显示在任务栏但如果是Abc就是主窗口了吧(我也刚学)这样多了资源,而且一些处理要在CAbcDlg中处理
CDialog::OnInitDialog()
{
...
SetParent(FindWindow("ProgMan",NULL));/////////加入的
ShowWindow(SW_MINIMIZE);////////////加入的
...
return TRUE;
}
设计时窗体的showintaskbar为False