标题
[mfc]怎么能让程序运行时不在任务栏显示图标?
clq
浏览(0) +
2010-04-26 10:55:13 发表
编辑
关键字:
[mfc]怎么能让程序运行时不在任务栏显示图标?
clq
楼主wlpwind(robin)2002-06-23 11:19:00 在 VC/MFC / 基础类 提问
怎么能让程序运行时不在任务栏显示图标?
程序窗口在桌面上显示,且是当前活动窗口,但任务栏中不显示图标。 问题点数:40、回复次数:8Top
1 楼pcman1990(pcman)回复于 2002-06-23 11:24:46 得分 0
让你的主窗口带上WS_EX_TOOLWINDOW风格Top
2 楼pcman1990(pcman)回复于 2002-06-23 11:35:43 得分 0
以SDI和MDI应用为例,你可以在CMainFrame中重载PreCreateWindow(),在其中加一句:
cs.dwExStyle |= WS_EX_TOOLWINDOW;
Top
3 楼pcman1990(pcman)回复于 2002-06-23 11:47:55 得分 20
对基于对话框的应用,稍微复杂一些:
先在资源编辑器中,把对话框的属性(Extended Style中)设成“Tool Window”,然后在主对话框的OnInitDialog()中加入下面代码:
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
AfxGetMainWnd()->ShowWindow(SW_HIDE);
::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style);
AfxGetMainWnd()->ShowWindow(SW_SHOW);
Top
4 楼beijingshizi(北京石子)回复于 2002-06-23 11:49:16 得分 0
支持楼上的Top
5 楼wlpwind(robin)回复于 2002-06-23 15:41:44 得分 0
thank you.
我试一试.Top
6 楼Redeon(Leon)回复于 2002-06-26 18:20:31 得分 7
今天我也在想这个问题。后来在网页上和msdn中找到一种方法。
先得到任务栏的句柄:
hTabWnd = FindWindow("Shell_TrayWnd", 0);
hTabWnd = FindWindowEx(hTabWnd, 0, "ReBarWindow32", NULL);
hTabWnd = FindWindowEx(hTabWnd, 0, "MSTaskSwWClass", NULL);
hTabWnd = FindWindowEx(hTabWnd, 0, "SysTabControl32", NULL);
然后用TabCtrl_DeleteItem删除你想要删除的那个按钮(就是程序在任务栏中的那个)。
不过我调用TabCtrl_GetItem时老是出现非法内存操作,哪位哥们给个方法?
Top
7 楼shilong(银羽 www.ylog.net)回复于 2002-06-26 18:48:28 得分 7
在对话框中实现隐藏任务栏也很简单
用文本方式打开资源文件,在对话框资源所在的地方
把EXSTYLE WS_EX_APPWINDOW改成WS_EX_TOOLWINDOW
保存就可以了Top
8 楼shilong(银羽 www.ylog.net)回复于 2002-06-26 18:48:51 得分 0
在对话框中实现隐藏任务栏也很简单
用文本方式打开资源文件,在对话框资源所在的地方
把EXSTYLE WS_EX_APPWINDOW改成WS_EX_TOOLWINDOW
保存就可以了Top
9 楼andy_lau(天行键,君子当自强不息!)回复于 2002-06-26 20:39:10 得分 6
对基于对话框的应用,稍微复杂一些:
先在资源编辑器中,把对话框的属性(Extended Style中)设成“Tool Window”,然后在主对话框的OnInitDialog()中加入下面代码:
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
AfxGetMainWnd()->ShowWindow(SW_HIDE);
::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style);
AfxGetMainWnd()->ShowWindow(SW_SHOW);
clq
隐藏掉基于对话框的主窗口.
//--------------------------------------------------
//clq
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
AfxGetMainWnd()->ShowWindow(SW_HIDE);
::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style);
AfxGetMainWnd()->ShowWindow(SW_SHOW);
//AfxGetMainWnd()->ShowWindow(SW_MINIMIZE);
//AfxGetMainWnd()->ShowWindow(SW_HIDE);
//::MoveWindow(AfxGetMainWnd()->GetSafeHwnd(), 0, 0, 0,0, FALSE);
::MoveWindow(AfxGetMainWnd()->m_hWnd, 0, 0, 0, 0, TRUE);
//--------------------------------------------------
clq
//--------------------------------------------------
//clq
::MoveWindow(AfxGetMainWnd()->m_hWnd, 0, 0, 0, 0, TRUE);
DWORD Style = ::GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE);
Style = WS_EX_TOOLWINDOW ;
AfxGetMainWnd()->ShowWindow(SW_HIDE);
::SetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_EXSTYLE, Style);
AfxGetMainWnd()->ShowWindow(SW_SHOW);
//AfxGetMainWnd()->ShowWindow(SW_MINIMIZE);
//AfxGetMainWnd()->ShowWindow(SW_HIDE);
//::MoveWindow(AfxGetMainWnd()->GetSafeHwnd(), 0, 0, 0,0, FALSE);
::MoveWindow(AfxGetMainWnd()->m_hWnd, 0, 0, 0, 0, TRUE);
//--------------------------------------------------
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.