主 题: 一个针对BUTTON的浮动菜单的问题
作 者: ylredsun (我不聪明)
等 级:
信 誉 值: 100
所属论坛: VC/MFC 界面
问题点数: 50
回复次数: 2
发表时间: 2002-10-26 17:25:58
一般VC开发工具时,可以插入一个dialog,在里面放入一些控件(如BUTTON)。而后,在我们在控制上点击右键时,就会出现一个针对这个控件的浮动菜单。(有一些项供我们选择如copy,cut,property等)但是自己如何通过程序实现一个类似的浮动菜单。当程序运行时,可以通过浮动菜单改变按钮的显示文字或是背景色等等。请高手指教!
回复人: yonghengdizhen(风儿她轻轻的吹) ( ) 信誉:100 2002-10-26 18:00:00 得分:0
用CMenu::CreatePopupMenu,LoadMenu,ModifyMenu,RemoveMenu,InsertMenu实现.
事件响应通过用
BEGIN_MESSAGE_MAP( CMyDoc, CDocument )
//{{AFX_MSG_MAP( CMyDoc )
ON_COMMAND( ID_MYCMD, OnMyCommand )
// ... More entries to handle additional commands
//}}AFX_MSG_MAP
END_MESSAGE_MAP( )
消息映射宏处理WM_COMMAND实现
Top
回复人: ylredsun(我不聪明) ( ) 信誉:100 2002-10-28 10:01:00 得分:0
但是像按钮本身不自带响应WM_RBUTTONDOWN消息,从classWizard可以看到,对于按钮只响应WM_LBUTTONDOWN和WM_LBUTTONDBLCLK。那么如何才能实现响应右键消息呢?而且通过LoadMenu Load的菜单选项按钮消息也并非直接发给DIALOG,而是发给(FRAME)VIEW啊。难道需要通过VIEW转发??
我用窗口子类化一个BUTTON后,虽然能收到所有的系统消息,但是当弹出浮动菜单后,点击某个菜单项,却收不到任何消息。
在DIALOG内重载菜单消息收不到,在子类里重载也收不到,请问这是为何啊?另说明一下,我的Menu未与任何控件相连,只是在button上单击右键时,通过TrackPopupMenu弹出。是不是菜单资源还需要与DIALOG相联系,DIALOG才会收到菜单消息?