===========================================
<1>
让你的主窗口带上WS_EX_TOOLWINDOW风格
<2>
以SDI和MDI应用为例,你可以在CMainFrame中重载PreCreateWindow(),在其中加一句:
cs.dwExStyle |= WS_EX_TOOLWINDOW;
<3>
对基于对话框的应用,稍微复杂一些:
先在资源编辑器中,把对话框的属性(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);
<4>
今天我也在想这个问题。后来在网页上和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时老是出现非法内存操作,哪位哥们给个方法?
<5>
在对话框中实现隐藏任务栏也很简单
用文本方式打开资源文件,在对话框资源所在的地方
把EXSTYLE WS_EX_APPWINDOW改成WS_EX_TOOLWINDOW
保存就可以了