为窗口增加上下文菜单

思路:

1.在资源里新建菜单

2.在类CMSPMSApp里载入

3.在菜单的父窗口里添加消息:WM_CONTEXTMENU的响应函数.

代码:

载入:

void CMSPMSApp::PreLoadState ()

{



	GetContextMenuManager()->AddMenu (_T("My menu"), IDR_CONTEXT_MENU);



	// TODO: add another context menus here

	GetContextMenuManager()->AddMenu (_T("video channel"), IDR_CONTEXT_CHANNEL);

	GetContextMenuManager()->AddMenu (_T("设备管理"), IDR_CONTEXT_DEVICE);

}

  添加响应函数:

void CDeviceBrowser::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// TODO: 在此处添加消息处理程序代码
	CTreeCtrl* pWndTree = (CTreeCtrl*) &m_wndTree;
	ASSERT_VALID (pWndTree);

	if (pWnd != pWndTree)
	{
		CBCGPDockingControlBar::OnContextMenu(pWnd, point);
		return;
	}

	if (point != CPoint (-1, -1))
	{
		CPoint ptTree = point;
		pWndTree->ScreenToClient (&ptTree);

		HTREEITEM hTreeItem = pWndTree->HitTest (ptTree);
		if (hTreeItem != NULL)
		{
			pWndTree->SelectItem (hTreeItem);
			pWndTree->SetFocus ();
			theApp.GetContextMenuManager()->ShowPopupMenu (IDR_CONTEXT_DEVICE,point.x, point.y, this, TRUE);
		}
		else
		{
			CBCGPDockingControlBar::OnContextMenu(pWnd, point);
		}
	}
}

  

posted on 2011-09-19 18:11  LateStop  阅读(475)  评论(0)    收藏  举报

导航