程序不在桌面任务样中显示小图标
////////////////////////////////////////////////////////////
文档、视结构程序
在 MainFrame 类中添加成员变量
CWnd m_wndOwner;
在 PreCreateWindow() 中添加代码
...
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或
// 样式
if( this->m_wndOwner.m_hWnd == NULL )
{
if( !this->m_wndOwner.CreateEx(
0 ,
::AfxRegisterWndClass( 0 ) ,
"" ,
WS_POPUP ,
0 , 0 , 0 , 0 ,
NULL ,
0
)
)
{
return FALSE;
}
}
cs.hwndParent = m_wndOwner.m_hWnd;
return TRUE;
}
...
主要目的就是修改 cs.hwndParent 的值,如果 cs.hwndParent == NULL 的话,
程序将 cs.hwndParent 赋默认值,也就是“桌面窗口(Desktop Window)”,这样的话,
程序的小图标就会出现在桌面任务栏中啦.
因为创建了一个窗口, m_wndOwner ,所以在析构函数 ~MainFrame() 中要销毁该窗口
...
CMainFrame::~CMainFrame()
{
if( this->m_wndOwner.m_hWnd != NULL )
this->m_wndOwner.DestroyWindow();
}
...
////////////////////////////////////////////////////////////