首先创建一个类,这里命名为CEditBox,其派生自CEdit。然后在资源中创建一个Menu,我这里命名其ID为IDR_VOL_VALUE。
在CEditBox的OnContextMenu中添加自定义右键菜单:
我在CTestView中使用了CEditBox类,CTestView派生自CFormView,右键菜单命令也是在CTestView中进行响应。这里有个问题,由于我在CTestView中使用了不止一个CEditBox控件,我们在命令消息中要知道是在哪个CEditBox上面点击了右键。我采取如下措施:
1、在CTestView中定义了一个CEditBox指针
m_pCurEdit用来保存我们的命令响应函数是针对的哪个控件。
2、在在CEditBox的OnContextMenu中,TrackPopupMenu之前得到其父窗口的指针pView,然后把this指针赋给pView->m_pCurEdit。代码如下:
3、消息响应函数在CEditBox的父窗口即CTestView中实现,代码如下: