给人做个东西,有这个要求,先放上一些玩意的隐藏。
任务栏::ShowWindow(::FindWindow(_T("Shell_TrayWnd"), NULL), SW_HIDE);
开始菜单 ::ShowWindow(::GetDlgItem(::FindWindow(_T("Shell_TrayWnd"), NULL),0x130), SW_HIDE);//0x130 是开始按钮的ID
桌面 ::ShowWindow(::FindWindow(_T("ProgMan"), NULL), SW_HIDE);
禁用可以用EnableWindow()
以为隐藏任务栏就完事,结果下面不给腾出位子来,任务栏原先的地方还是不会被覆盖。在任务栏上右键,属性,设置任务栏自动隐藏任务栏时发现窗口会占据那块位置,网上找到个设置自动隐藏的代码,结合隐藏任务栏,成功达到目的.
VOID HideTaskBar(BOOL bHide)
{
int nCmdShow;
HWND hWnd;
LPARAM lParam;
hWnd = FindWindow(_T("Shell_TrayWnd"),NULL);
if(bHide == TRUE)
{
nCmdShow = SW_HIDE;
lParam = ABS_AUTOHIDE | ABS_ALWAYSONTOP;
}
else
{
nCmdShow = SW_SHOW;
lParam = ABS_ALWAYSONTOP;
}
ShowWindow(hWnd,nCmdShow);
APPBARDATA apBar;
memset(&apBar, 0, sizeof(apBar));
apBar.cbSize = sizeof(apBar);
apBar.hWnd = hWnd;
if(apBar.hWnd != NULL)
{
apBar.lParam = lParam;
SHAppBarMessage(ABM_SETSTATE, &apBar);
}
}
用到shellapi需要包含头文件
vs08+xp测试通过