作者在 2010-12-21 17:25:10 发布以下内容
原理:
首先创建一个不可见的窗口,然后使该窗口作为对话框的父窗口,这样出来的对话框就不在任务栏上显示图标了。
代码:
在App类中增加CWnd对象m_wndOwner
在InitInstance函数中添加代码
。。。
if(m_wndOwner.m_hWnd == NULL)
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if ( !m_wndOwner.CreateEx(0, pstrOwnerClass, _T(""), //创建一个隐藏的弹出样式的窗口
WS_POPUP, CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL, 0) )
return FALSE;
{
LPCTSTR pstrOwnerClass = AfxRegisterWndClass(0);
if ( !m_wndOwner.CreateEx(0, pstrOwnerClass, _T(""), //创建一个隐藏的弹出样式的窗口
WS_POPUP, CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL, 0) )
return FALSE;
}
CMyDlg dlg(&m_wndOwner); //以m_wndOwner为父窗口
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
if (nResponse == IDOK)
{
}
else if (nResponse == IDCANCEL)
{
}
//销毁父窗口
if (m_wndOwner.m_hWnd != NULL)
m_wndOwner.DestroyWindow();
m_wndOwner.DestroyWindow();
return FALSE;
最后,以文本模式编辑.rc文件,将对话框属性中的
EXSTYLE WS_EX_APPWINDOW
这一行去掉