怎样在CRichEditCtrl控件中加入自己的右键菜单?

本文详细介绍了如何在Windows应用程序中,利用CRichEditCtrl控件自定义并添加右键菜单,包括设置菜单项、响应命令及实现用户交互的步骤。
摘要由CSDN通过智能技术生成
主  题:  
怎样在CRichEditCtrl控件中加入自己的右键菜单?
 
     
我想在自己编的程序中,当鼠标右击RichEdit控件时,能在该控件中在鼠标的当前位置弹出右键菜单。可是对该控件进行消息映射时发现没有像视图类那样的WM_RBUTTONDOWN消息,仅有一个NM_RCLICK消息,映射后,发现生成的消息映射函数的参数中根本没有当前鼠标的坐标,该怎么在该控件中实现右键菜单呢?
  回复人: ahao(天·狼·星星) ( ) 信誉:97 2003-03-07 21:03:37Z 得分:100
 
 
?
先
BOOL CPopupDemoDlg::OnInitDialog() 
{ 
   m_RichEdit.SetEventMask(ENM_MOUSEEVENTS);
...

再
//
BOOL CPopupDemoDlg::PreTranslateMessage(MSG* pMsg)
{ 
    if (pMsg->message ==WM_RBUTTONDOWN)
    {
        CWnd * pWnd = (CWnd*) GetDlgItem(IDC_RICHEDIT); 
        if (pWnd ==GetFocus())
        {
              CMenu menu;
              DWORD dwSelectionMade; VERIFY(menu.LoadMenu(IDR_MENU1));
              CMenu *pmenuPopup = menu.GetSubMenu(0);
              ASSERT(pmenuPopup != NULL);                                    
              dwSelectionMade = pmenuPopup->TrackPopupMenu( (TPM_LEFTALIGN|
                                                                TPM_LEFTBUTTON|
                                                                TPM_NONOTIFY|
                                                                TPM_RETURNCMD),
                                                                 pMsg->pt.x, 
                                                                 pMsg->pt.y, this
                                                          );  
              pmenuPopup->DestroyMenu();
             //excercise for the reader...deal with the selection the user has made here
             return TRUE;
               }
    }
    return CDialog::PreTranslateMessage(pMsg);
}
//

Top
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值