一般VC开发工具时,可以插入一个dialog,在里面放入一些控件(如BUTTON)。而后,在我们在控制上点击右键时,就会出现一个针对这个控件的浮动菜单。(有一些项供我们选择如copy,cut,property等)但是自己如何通过程序实现一个类似的浮动菜单。当程序运行时,可以通过浮动菜单改变按钮的显示文字或是背景色等等。请高手指教!

解决方案 »

  1.   

    用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实现
      

  2.   

    但是像按钮本身不自带响应WM_RBUTTONDOWN消息,从classWizard可以看到,对于按钮只响应WM_LBUTTONDOWN和WM_LBUTTONDBLCLK。那么如何才能实现响应右键消息呢?而且通过LoadMenu Load的菜单选项按钮消息也并非直接发给DIALOG,而是发给(FRAME)VIEW啊。难道需要通过VIEW转发??