我觉得可以这样!
RECT rcBtn;
HWND hWndBtn; //找到“开始”按钮
HWND hWndTaskBar = FindWindow("Shell_TrayWnd",NULL);
HWND hBtnStart = FindWindowEx(hWndTaskBar,NULL,"Button",NULL); if(!hBtnStart)
return FALSE;
GetWindowRect(hBtnStart,&rcBtn);
ShowWindow(hBtnStart,SW_HIDE);
POINT pt,pt1;
pt.x = rcBtn.left;
pt.y = rcBtn.top;
pt1.x= rcBtn.right;
pt1.y= rcBtn.bottom;
//转化坐标
ScreenToClient(hBtnStart,&pt);
ScreenToClient(hBtnStart,&pt1); CREATESTRUCT cs;
cs.lpszClass = "Button";
cs.lpszName = "开始";
cs.style = WS_CHILD|WS_VISIBLE|WS_BORDER;//|BS_BITMAP;
cs.hMenu = NULL;
cs.hwndParent = hWndTaskBar;
cs.lpCreateParams= NULL;
cs.x = pt.x;
cs.y = pt.y;
cs.cx = pt1.x-pt.x;
cs.cy = pt1.y-pt.y;
cs.hInstance = NULL;
//创建一个按钮,代替Win的开始按钮!
hWndBtn = CreateWindow(cs.lpszClass,
cs.lpszName,
cs.style,
cs.x,
cs.y,
cs.cx,
cs.cy,
cs.hwndParent,
cs.hMenu,
cs.hInstance,
cs.lpCreateParams);
if(!hWndBtn)
return FALSE;
UpdateWindow(hWndBtn);
ShowWindow(hWndBtn,SW_SHOW);
//可以使用SetWindowLong来处理你的按钮窗口过程函数
DestroyWindow(hWndBtn);
//还原 开始 按钮
ShowWindow(hBtnStart,SW_SHOW);
RECT rcBtn;
HWND hWndBtn; //找到“开始”按钮
HWND hWndTaskBar = FindWindow("Shell_TrayWnd",NULL);
HWND hBtnStart = FindWindowEx(hWndTaskBar,NULL,"Button",NULL); if(!hBtnStart)
return FALSE;
GetWindowRect(hBtnStart,&rcBtn);
ShowWindow(hBtnStart,SW_HIDE);
POINT pt,pt1;
pt.x = rcBtn.left;
pt.y = rcBtn.top;
pt1.x= rcBtn.right;
pt1.y= rcBtn.bottom;
//转化坐标
ScreenToClient(hBtnStart,&pt);
ScreenToClient(hBtnStart,&pt1); CREATESTRUCT cs;
cs.lpszClass = "Button";
cs.lpszName = "开始";
cs.style = WS_CHILD|WS_VISIBLE|WS_BORDER;//|BS_BITMAP;
cs.hMenu = NULL;
cs.hwndParent = hWndTaskBar;
cs.lpCreateParams= NULL;
cs.x = pt.x;
cs.y = pt.y;
cs.cx = pt1.x-pt.x;
cs.cy = pt1.y-pt.y;
cs.hInstance = NULL;
//创建一个按钮,代替Win的开始按钮!
hWndBtn = CreateWindow(cs.lpszClass,
cs.lpszName,
cs.style,
cs.x,
cs.y,
cs.cx,
cs.cy,
cs.hwndParent,
cs.hMenu,
cs.hInstance,
cs.lpCreateParams);
if(!hWndBtn)
return FALSE;
UpdateWindow(hWndBtn);
ShowWindow(hWndBtn,SW_SHOW);
//可以使用SetWindowLong来处理你的按钮窗口过程函数
DestroyWindow(hWndBtn);
//还原 开始 按钮
ShowWindow(hBtnStart,SW_SHOW);
解决方案 »
- 调出图片对话框的问题
- 用CreateWindowEx创建了一个ToolTip类窗口,如何使它具有阴影效果?
- 求救:测试简单客户断和服务端连接的全过程,请高手帮我看看!
- 鼠标全局钩子问题
- variant转char*怎么转阿??
- vc里面怎么自动保存啊
- 请教一下三维变换怎么做?
- 我什么时候需要用GlobalAlloc还是我只要用new/delete就够了?
- 请问我想截取ocx控件的消息,写自己得消息处理函数,该怎么作呀?谢谢
- 鼠标不响应Tab控件,怎末办?
- SingleObjectAndWait有没有Multiple版本?就是将等待事件数组和等到后置另一个事件归为原子操作的线程同步函数。另外SingleObjectAndWait编译器为何不识别?
- VC高手们快救愚弟:怎样才能让我的程序执行点击另外一个程序的窗口的按钮的操作!!!
如果有多个按钮
hBtmStart得到的一定是开始按钮的句柄吗?