如何为任务栏上的所有窗口添加右键菜单?
如题,最近想写个小程序自己用,需要操作系统菜单,如何为任务栏上的所有窗口添加右键菜单?即对右键系统菜单添加一个菜单项,以实现某个操作,比如最小化,最大化那样的.在每一个窗口的任务栏标题上都要有.
请高手给个示例,或者发到我的邮箱 kenny52104@yahoo.com.cn
[解决办法]
不知道LZ到底想要什麽!!!
清楚!!
只想要系菜???
[解决办法]
给其他的程序加是不大可能的.
我没发现有哪个程序这样做过.如果能做,那些 "流氓 "性质的软件早做了.
当然也许是我孤陋寡闻..
我这里有给自己程序的系统菜单添加项目的代码.就象你运行CMD,想右键点系统栏上的 "关闭 ",关掉的时候 发现它最低下那个不是 "关闭 " 就那个菜单项. 可以.. 说的这么别扭是怕有误解..
如果是要这的话,留给油箱..如果不是,,我语文差,听不懂LZ说什么意思了/...
[解决办法]
该功能我以前写过
用Windows的 Hook, 贴部分代码给你
BOOL InstallMenu(HWND hThisWnd = NULL)
{
g_hThisWnd = hThisWnd;
hCallWndRet = SetWindowsHookEx(WH_CALLWNDPROCRET, CallWndProcRetFunc, hins, 0);
hGetMsg= SetWindowsHookEx(WH_GETMESSAGE, GetMsgProcFunc, hins, 0);
return TRUE;
}
#define DLG_NEEDSTYLE(WS_CAPTION | WS_SYSMENU)
CallWndProcRetFunc()
{
if(WM_INITMENU)//添加菜单
{
lStyle = GetWindowLong(pCwpret-> hwnd, GWL_STYLE);
if((lStyle & DLG_NEEDSTYLE) == 0 )//对于某些Dlg 是不用加的
...;
InsertMenu(pCwpret-> hwnd, bWndToped);
}
}
GetMsgProcFunc()
{
if(pMsg-> wParam != SC_WNDTOP)
return....
CallYouAction();//加入自己的响应代码
}