初识MFC:给窗口添加右键弹出式菜单
环境:VS2012;工程名:POPMENU
第一步:在中创建一个菜单对象
1 //POPMENU.h 2 public: 3 CMenu m_MenuTrack;
第二步:初始化这个菜单(可以在资源中加载,也可以手动添加,这里用手动添加)
(Think:应该把这个初始化添加在哪里呢?我们可以重写函数:OnInitialUpdate)
1 void CPOPMENUView::OnInitialUpdate() 2 { 3 CView::OnInitialUpdate(); 4 5 // TODO: 在此添加专用代码和/或调用基类 6 7 m_MenuTrack.CreatePopupMenu(); 8 m_MenuTrack.AppendMenu( MF_STRING , IDR_MAX , _T("最大化") ); 9 m_MenuTrack.AppendMenu( MF_STRING , IDR_MIN , _T("最小化") ); 10 m_MenuTrack.AppendMenu( MF_STRING , IDR_HIDE , _T("隐藏") ); 11 m_MenuTrack.AppendMenu( MF_SEPARATOR ); 12 m_MenuTrack.AppendMenu( MF_STRING , IDR_QUIT , _T("退出") ); 13 }
第三步:添加触发菜单事件(我们是要鼠标右键按下,弹出菜单,所以添加鼠标右键按下消息)
1 void CPOPMENUView::OnRButtonDown(UINT nFlags, CPoint point) 2 { 3 // TODO: 在此添加消息处理程序代码和/或调用默认值 4 //获得鼠标焦点 5 ClientToScreen(&point); 6 //弹出菜单 7 m_MenuTrack.TrackPopupMenu( TPM_LEFTALIGN , point.x , point.y , AfxGetMainWnd() ); 8 9 CView::OnRButtonDown(nFlags, point); 10 }

浙公网安备 33010602011771号