您的位置:程序门 -> vc/mfc -> 界面



如何为任务栏上的所有窗口添加右键菜单?


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


如何为任务栏上的所有窗口添加右键菜单?[已结贴,结贴人:kenny52104]
发表于:2007-07-21 16:36:41 楼主
如题,最近想写个小程序自己用,需要操作系统菜单,如何为任务栏上的所有窗口添加右键菜单?即对右键系统菜单添加一个菜单项,以实现某个操作,比如最小化,最大化那样的.在每一个窗口的任务栏标题上都要有.

请高手给个示例,或者发到我的邮箱     kenny52104@yahoo.com.cn
发表于:2007-07-22 09:32:591楼 得分:10
不知道lz到底想要什麽東東!!!

沒聽清楚!!

只想要系統菜單???
发表于:2007-07-22 18:30:552楼 得分:10
给其他的程序加是不大可能的.  
我没发现有哪个程序这样做过.如果能做,那些 "流氓 "性质的软件早做了.
当然也许是我孤陋寡闻..

我这里有给自己程序的系统菜单添加项目的代码.就象你运行cmd,想右键点系统栏上的 "关闭 ",关掉的时候   发现它最低下那个不是   "关闭 "   就那个菜单项.   可以..     说的这么别扭是怕有误解..

如果是要这的话,留给油箱..如果不是,,我语文差,听不懂lz说什么意思了/...
发表于:2007-07-22 19:48:013楼 得分:20
该功能我以前写过

用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(); //加入自己的响应代码
       
}
发表于:2007-07-22 20:34:534楼 得分:0
en   .   不错..3x.
发表于:2007-07-22 22:01:415楼 得分:0
谢谢楼上各位了
我要的功能就是向在标题栏上或者任务栏上点右键弹出的右键菜单上添加一个菜单项,实现一个窗口置顶的操作,软件运行或者安装以后在每一个窗口上点右键弹出的菜单都会有这个菜单项

zzz3265,可不可以把你这个功能的完整代码发给我,我研究一下,vc++学得还不是很好,hook编程不是很懂,可以么?

先谢谢了!我邮箱   :   kenny52104@yahoo.com.cn
发表于:2007-07-23 20:21:436楼 得分:0
我也要一份   谢谢
josling87@163.com
发表于:2007-07-29 09:29:037楼 得分:0
慢慢學!!剛開始都一樣


快速检索

最新资讯
热门点击