程序不在桌面任务样中显示小图标

来源:互联网 发布:剑网三捏脸花姐数据 编辑:程序博客网 时间:2024/05/02 01:42

程序不在桌面任务样中显示小图标


////////////////////////////////////////////////////////////
文档、视结构程序

在 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();
}
...

////////////////////////////////////////////////////////////

原创粉丝点击