-
列表上下文菜单
在列表或树控件(CListUIEx、CTreeCtrlUI及其子类)中,点击鼠标右键可以弹出上下文菜单。需要添加如下代码:
pItem = pList->InsertItem(_T(""));
pItem->SetContextMenuUsed(true);
pItem->SetINotify(this);代码SetContextMenuUsed(true)就是让控件发送DUI_MSGTYPE_ITEMCONTEXTMENU通知。
在页面的Notify函数中增加消息响应代码:
......
else if (_tcsicmp(msg.sType, DUI_MSGTYPE_ITEMCONTEXTMENU) == 0)
{
HWND hParent = m_pPM->GetPaintWindow();
DuiLib::CPoint point = msg.ptMouse;
::ClientToScreen(hParent, &point);
HMENU hMenu;
hMenu = ::LoadMenu(NULL, MAKEINTRESOURCE(IDR_MAINMENU));
HMENU h;
h = ::GetSubMenu(hMenu, 0);
::TrackPopupMenu(h, TPM_RIGHTALIGN | TPM_LEFTBUTTON | TPM_RIGHTBUTTON, point.x, point.y, 0, hParent, NULL);
}