-
February 14th, 2003, 08:40 AM
#1
MFC List Control: How to use a context menu in a list control?
Q: How to use a context menu in a list control?
A:
- Create a menu in the resource editor.
- Derive your own class from CListBox and insert the WM_CONTEXTMENU handler in the class.
- Insert the following code in your 'OnContextMenu()' function:
Code:
void CMyListBoxCtl::OnContextMenu(CWnd*, CPoint point)
{
if((point.x == -1) && (point.y == -1))
{
// Keystroke invocation
CRect rect;
GetClientRect(rect);
ClientToScreen(rect);
point = rect.TopLeft();
point.Offset(5, 5);
}
CMenu menu;
VERIFY(menu.LoadMenu(MY_CREATED_MENU));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CWnd* pWndPopupOwner = this;
while(pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,
point.x,
point.y,
pWndPopupOwner);
}
- Create a member variable from your List Control and change the class name with your derived class.
Last edited by Andreas Masur; July 25th, 2005 at 03:47 PM.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|