请问,有没有可能修改或者替换windows窗口的标题条的右键弹出菜单???

doom 2000-12-05 11:30:00
就是那个"移动","大小"和"关闭"的很烦人的菜单...
...全文
592 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
doom 2000-12-06
  • 打赏
  • 举报
回复
1;主要是不想作,反正windows已经做好了,我只是想改变菜单的显示而已,她这个菜单是在什么地方实现的呢???
2;怎么弄?我没有找到整个修改的方法...
3;过滤哪条消息???
随风bj 2000-12-06
  • 打赏
  • 举报
回复
1。当然能改啊,要使窗口移动的方法有许多啊,何必管它
2。可以
3。过滤消息
doom 2000-12-06
  • 打赏
  • 举报
回复
sos
Hidy 2000-12-06
  • 打赏
  • 举报
回复
void OnNcRButtonDown(UINT nHitTest, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU);
CMenu* pMenu = menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, point.x, point.y, this);
//CFrameWnd::OnNcRButtonDown(nHitTest, point);
}

OnNcRButtonDown是WM_NCRBUTTONDOWN的消息处理函数,
IDR_MENU是你自己的菜单。
还有问题吗?
doom 2000-12-06
  • 打赏
  • 举报
回复
1;我只是想修改它的弹出菜单,可是当我替换了"移动"菜单项之后,窗口就不能移动了,我不想丢失这些功能,请问这个菜单是在什么地方实现的,能否修改???
2;能否整个修改,而不是一条一条的加入,删除,太麻烦了???
3;修改了以后,在那里加新菜单项的处理函数???
sun2000 2000-12-06
  • 打赏
  • 举报
回复
有DeleteMenu成员
若要整个替换可以先Detach再Attach不就可以了?
doom 2000-12-06
  • 打赏
  • 举报
回复
help me
doom 2000-12-06
  • 打赏
  • 举报
回复
啊呵,不知道这个系统菜单是在什么地方实现的......
doom 2000-12-06
  • 打赏
  • 举报
回复
问题是当我修改了系统默认的菜单项之后,比如"移动",对话框就不能移动了,我不想失去这些功能,能不能做到???
还有,好像只支持add,insert,modify等三个对菜单项的操作,能不能一下替换整个菜单???
sun2000 2000-12-06
  • 打赏
  • 举报
回复
用CWnd::GetSystemMenu得到CMenu*
得到了CMenu*就可以对这个menu为所欲为了
doom 2000-12-06
  • 打赏
  • 举报
回复
sos
doom 2000-12-06
  • 打赏
  • 举报
回复
555,help
doom 2000-12-06
  • 打赏
  • 举报
回复
sos
In355Hz 2000-12-06
  • 打赏
  • 举报
回复
(掏出本赶紧记录)高手,高手!
Hidy 2000-12-06
  • 打赏
  • 举报
回复
对了,补充一下,得先判断 nHitTest == HTCAPTION
即右键击在标题栏上才弹出菜单,这么较为合适。
Hidy 2000-12-06
  • 打赏
  • 举报
回复
To:doom
如果你在类向导中看不到WM_NCRBUTTONDOWN,你可以进入类向导,
选择Class Info,把Message filter改成Window,再回去
Message Maps,就可以看到了。自己在代码中加也一样可以。
psy 2000-12-06
  • 打赏
  • 举报
回复
GetSystemMenu(hwnd,FALSE);
恢复:GetSystemMenu(hwnd,TRUE);
AppendMenu(..);
DeleteMenu(..);
InsertMenu(..);
ModifyMenu(..);
RemoveMenu(..);
处理WM_SYSCOMMAND消息,LOWORD(wParam),是IDM_SYS_***;
Kingron 2000-12-06
  • 打赏
  • 举报
回复
替换的时候,你仍然继承一下原来的处理就行了!用Delphi我就是这么做的。
procedure TForm1.WMNCRBUTTONDOWN(var msg:tmessage);message WM_NCRBUTTONDOWN;
begin
showmessage('fksdlfjks');
inherited; //可以显示原来的菜单
end;
doom 2000-12-06
  • 打赏
  • 举报
回复
请各位详细点说,这方面书上很少讲...
doom 2000-12-06
  • 打赏
  • 举报
回复
...
加载更多回复(5)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧