MFC 让对话框不显示在任务栏和桌面

[Windows]MFC窗体 专栏收录该内容
18 篇文章 0 订阅

ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW,1);//任务栏隐藏

ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);//从任务栏中去掉.
  SetWindowPos(&wndTop,0,0,0,0,NULL);

或者

 

ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);//从任务栏中去掉.


  WINDOWPLACEMENT wp;
  wp.length=sizeof(WINDOWPLACEMENT);
  wp.flags=WPF_RESTORETOMAXIMIZED;
  wp.showCmd=SW_HIDE;
  SetWindowPlacement(&wp);



在IE版本为4.0以上的系统中有一个叫ITaskbarList的接口,故名思义,这个接口可用来控制任务栏上的按钮是否显示,你只要给出一个窗口的句柄和是否显示,完全不需考虑上面那此乱七八糟的规则.

代码:

void ShowInTaskbar(HWND m_hWnd,BOOL bshow)
{
 //在app的InitInstance中加入::CoInitialize(NULL);
 HRESULT hr;
 ITaskbarList *pTaskbarList;

 hr=CoCreateInstance(CLSID_TaskbarList,NULL,CLSCTX_INPROC_SERVER,
   IID_ITaskbarList,(void**)&pTaskbarList);
 
 pTaskbarList->HrInit();//MSDN中说在使用这个接口的其它方法之前得调用这个方法以便做一些初始化动作,我发现不调用这个方法也可以的.
 if(bshow){
  pTaskbarList->AddTab(m_hWnd);
 }
 else{
  pTaskbarList->DeleteTab(m_hWnd);
 }
 pTaskbarList->Release();
 //在app的ExitInstance中加入::CoUninitialize();

}

在需要的时候调用这个函数就可以了,第一个参数为窗口的句柄,第二个参数指明是在任务栏上是否显示按钮.

备注:这种方法功能强大,使用也较为简便,不过低版本的windows可能不支持.

来源:http://blog.csdn.net/ponydph/article/details/1350623
  • 1
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值