推荐书籍:
c++ windows窗口句柄控制
1.首先我们可以通过spy++获取到窗口的句柄以及窗口的类名,这个是十分简单的,比如说底部任务栏的是
类名:Shell_TrayWnd
模块名:EXPLORER
标题是:空
2.找到窗口的句柄,好了到这一步我们就非常容易操作找到窗口句柄了
HWND task;
task = ::FindWindow("Shell_TrayWnd", NULL);
if (!task)
{
AfxMessageBox("找不到窗口");
return false;
}
::ShowWindow(task, SW_HIDE);//隐藏任务栏
这个样子可以隐藏底部所有的任务栏
3.如果你希望获取底部开始菜单和应用进程使用以及其他的句柄就需要获取Shell_TrayWnd的子句柄,那么我们用FindWindow毫无疑问是找不到这个句柄的那我们应该怎么办呢?
很简单:枚举出所有子窗口句柄住个进行操作,如果我想隐藏掉开始任务栏那么
//函数前置声明
BOOL CALLBACK CallBackFun(HWND hwndChild, LPARAM lParam)
{
char buf[1024];
::GetWindowText(hwndChild, buf,sizeof(buf));
CString title(buf);
if (title == "开始")
{
::ShowWindow(hwndChild,SW_SHOW);
}
return true;
}
HWND task;
task = ::FindWindow("Shell_TrayWnd", NULL);
if (!task)
{
AfxMessageBox("找不到窗口");
return false;
}
::EnumChildWindows(task,CallBackFun,NULL);