MFC总结(5)---ListCtrl添加右键菜单
2015-11-10 14:55
423 查看
在开发中会用到右键菜单,我们来一起学习一下。
假如,我们现在已经准备好了列表,就差右键处理了。
1、在资源视图中的添加一个MENU,如图
2、给要添加右键菜单的ListCtrl子类,添加消息
按 ctrl + shift + x 打开类向导,选择要添加的子类,在消息中找到 =NM_RCLICK消息,双击=NM_RCLICK,就会在右侧出现OnNMRClick,然后点击编辑代码即可
3、编辑代码
测试效果
假如,我们现在已经准备好了列表,就差右键处理了。
1、在资源视图中的添加一个MENU,如图
2、给要添加右键菜单的ListCtrl子类,添加消息
按 ctrl + shift + x 打开类向导,选择要添加的子类,在消息中找到 =NM_RCLICK消息,双击=NM_RCLICK,就会在右侧出现OnNMRClick,然后点击编辑代码即可
3、编辑代码
void CRunSerListCtr::OnNMRClick(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR); // TODO: 在此添加控件通知处理程序代码 *pResult = 0; NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if (pNMListView->iItem != -1) { DWORD dwPos = GetMessagePos(); CPoint point(LOWORD(dwPos), HIWORD(dwPos)); CMenu menu; //添加线程操作 VERIFY(menu.LoadMenu(IDR_MENU1)); //这里是我们在1中定义的MENU的文件名称 CMenu* popup = menu.GetSubMenu(0); ASSERT(popup != NULL); popup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this); //下面的两行代码主要是为了后面的操作为准备的 //获取列表视图控件中第一个被选择项的位置 POSITION m_pstion = GetFirstSelectedItemPosition(); //该函数获取由pos指定的列表项的索引,然后将pos设置为下一个位置的POSITION值 m_nIndex = GetNextSelectedItem(m_pstion); CString str; str.Format(L" m_nIndex = %d", m_nIndex); MessageBox(str, str, 0); } }
测试效果
相关文章推荐
- 【Java并发编程】:使用synchronized获取互斥锁的几点说明
- Android中Zxing扫描二维码
- ubuntu下安装tensorflow到运行MNIST
- POJ 百炼 保研机试 2713:肿瘤面积
- Java模拟HttpClient进行Get和Post提交
- nginx的luajit安装luarocks并安装luafilesystem
- MAC系统安装MySql
- AndroidManifest 中original-package标签
- App Transport Security has blocked a cleartext HTTP (http://) resource load
- POJ 百炼 保研机试 4015:邮箱验证
- 一次领光天猫双 11 所有优惠卷
- Javascript设计模式理论与实战:工厂方法模式
- jquery的ready事件的实现机制浅析
- List 用法
- MARKDOWN小技巧
- 【数据结构】用栈实现括号匹配的检验
- 【Java并发编程】:图文讲述同步的另一个重要功能:内存可见性
- POJ 百炼 保研机试 4104:单词翻转
- 一个正则表达式测试(只可输入中文、字母和数字)
- offsetwidth