1.定义消息
#define WM_RMENU_CMD_TEST_1 WM_USER + 202
#define WM_RMENU_CMD_TEST_2 WM_USER + 203
#define WM_RMENU_CMD_TEST_3 WM_USER + 204
2.定义消息函数
//
ON_WM_RBUTTONDOWN()
//
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
3.消息函数实现
void CProductModeling::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING, WM_RMENU_CMD_TEST_1, "Test 1");
menu.AppendMenu(MF_STRING, WM_RMENU_CMD_TEST_1, "Test 2");
menu.AppendMenu(MF_STRING, WM_RMENU_CMD_TEST_1, "Test 3");
POINT tpoint;
tpoint.x = point.x;
tpoint.y = point.y;
ClientToScreen(&tpoint);
menu.TrackPopupMenu(TPM_LEFTALIGN, tpoint.x, tpoint.y, this);
CDialog::OnRButtonDown(nFlags, point);
}
4.重载命令消息函数
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
BOOL CProductModeling::OnCommand(WPARAM wParam, LPARAM lParam)
{
switch (LO
MFC---右键弹窗
最新推荐文章于 2024-01-06 15:19:36 发布