Windows 界面:右键菜单的实现
2008-01-30 18:10
369 查看
1,首先在资源栏的 menu 项建立好要使用的菜单;
2,对于一般的窗口和控件,可以使用 ClassWizard 创建其消息处理函数 OnContextMenu() ;
3,特定区域的右键菜单也可以创建鼠标右键消息响应;
4,在消息响应函数中弹出菜单:
void CScanFileList::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
// TODO: Add your message handler code here
//按右键显示菜单
CMenu Menu;
Menu.LoadMenu(IDR_MAINFRAME);
CMenu *pPopUpMenu = Menu.GetSubMenu(1);
//show menu
pPopUpMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, AfxGetMainWnd());
}
5,如果是响应右键消息,那么弹出菜单的位置参数就要使用 API 来获得了,没错,就是获取鼠标当前位置:
case WM_RBUTTONDOWN:
POINT pt;
if (!GetCursorPos(&pt))
{
// error
CString strErr;
strErr.Format(_T("Cannot pop mouse right button memu, GetCursorPos failed !/r/n/r/nError: %s")
, GetErrorMsgAndCode() // 本函数参见我的另一文:http://tb.blog.csdn.net/TrackBack.aspx?PostId=2071783
);
AfxMessageBox(strErr);
return;
}
CMenu rbMenu;
rbMenu.LoadMenu(IDR_MENU_RButton);
CMenu *pPopUpMenu = rbMenu.GetSubMenu(0);
pPopUpMenu->TrackPopupMenu(TPM_LEFTALIGN, pt.x, pt.y, this);
break;
6,That's All,就是这么简单。(ps:有空就给点回复吧!:)
2,对于一般的窗口和控件,可以使用 ClassWizard 创建其消息处理函数 OnContextMenu() ;
3,特定区域的右键菜单也可以创建鼠标右键消息响应;
4,在消息响应函数中弹出菜单:
void CScanFileList::OnContextMenu(CWnd* /*pWnd*/, CPoint point)
{
// TODO: Add your message handler code here
//按右键显示菜单
CMenu Menu;
Menu.LoadMenu(IDR_MAINFRAME);
CMenu *pPopUpMenu = Menu.GetSubMenu(1);
//show menu
pPopUpMenu->TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, AfxGetMainWnd());
}
5,如果是响应右键消息,那么弹出菜单的位置参数就要使用 API 来获得了,没错,就是获取鼠标当前位置:
case WM_RBUTTONDOWN:
POINT pt;
if (!GetCursorPos(&pt))
{
// error
CString strErr;
strErr.Format(_T("Cannot pop mouse right button memu, GetCursorPos failed !/r/n/r/nError: %s")
, GetErrorMsgAndCode() // 本函数参见我的另一文:http://tb.blog.csdn.net/TrackBack.aspx?PostId=2071783
);
AfxMessageBox(strErr);
return;
}
CMenu rbMenu;
rbMenu.LoadMenu(IDR_MENU_RButton);
CMenu *pPopUpMenu = rbMenu.GetSubMenu(0);
pPopUpMenu->TrackPopupMenu(TPM_LEFTALIGN, pt.x, pt.y, this);
break;
6,That's All,就是这么简单。(ps:有空就给点回复吧!:)
相关文章推荐
- jQuery实现右键菜单+遮罩+弹出层(适应管理系统界面)
- Windows 右键菜单中实现将Oracle trc文件转换为可读文件
- windows客户端实现类似windows系统右键新建菜单功能
- JS实现不使用图片仿Windows右键菜单效果代码
- 怎么实现“鼠标穿透”,即鼠标对窗体失去作用,对着它点右键要出现WINDOWS的桌面右菜单
- 平台如如何实现类似windows的右键菜单
- 在windows下修改右键菜单以实现使用vs2010快速编译代码
- Windows Shell编程实现右键菜单-VS2005,Win7 32位
- JS实现不使用图片仿Windows右键菜单效果代码
- 在windows下修改右键菜单以实现使用vs2010快速编译代码
- 怎么实现“鼠标穿透”,即鼠标对窗体失去作用,对着它点右键要出现WINDOWS的桌面右菜单
- Windows 右键扩展菜单实现中遇到的问题
- DirectUI界面编程(六)实现右键弹出菜单
- Windows 右键扩展菜单实现中遇到的问题
- 平台如如何实现类似windows的右键菜单
- linux下QT界面的treewiget控件的右键菜单的实现
- DirectUI界面编程(六)实现右键弹出菜单
- 如何用程序实现增加二级windows文件右键菜单
- 在winform界面实现右键菜单功能
- 实现Windows下的右键菜单添加