MFC中的ListCtrl控件如何设置上下文菜单?

MFC中的ListCtrl控件如何设置上下文菜单?,第1张

你可以通过

void OnClickList(NMHDR* pNMHDR, LRESULT* pResult)

{

判断右键菜单响应是否允许响应d出菜单后执行:

int m_CurSel = m_list.GetSelectionMark()//获得当前选中的item的mark(索引号)

if(m_CurSel != -1)

{

//选中之后你要做什么;

}

}

对列表视图的控制有一系列的函数的, *** 作非常方便

你这里说的上下文菜单是右键菜单,这是d出式菜单,菜单的添加方式和普通菜单添加方法一样,可以通过CMenu类的TrackPopupMenu函数创建d出式菜单,通过OnRButtonDown()右键消息根据m_CurSel的值就能对哪个item项进行 *** 作了

,简略调用:

CWnd *pWnd=AfxGetApp( )->GetMainWnd( )//获得窗口指针

CMenu * pMenu=pWnd->GetMenu( )//获得menu指针

CMenu* submenu = pMenu->GetSubMenu(5)//获取“命令”菜单项

CPoint pt

GetCursorPos(&pt)//获得鼠标位置

submenu->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this)//d出浮动菜单

上面的方法是d出已有菜单项里面的下拉菜单,如果项单独创建菜单资源,则可以独立插入一个新的菜单,调用代码:

CMenu menu//定义菜单

menu.LoadMenu(IDR_FLOATMENU)//载入浮动菜单

CMenu *pM=menu.GetSubMenu(0)//菜单的第一项作为浮动菜单

CPoint pt

GetCursorPos(&pt)//获得鼠标位置

submenu->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this)//d出浮动菜单

1、先在资源视图下选择添加资源,选择菜单,然后在对话框的属性栏,选择Menu(会有你添加菜单的ID)即可。

2、先在资源视图下选择添加资源,选择菜单

CMenu

m_menu

m_menu.loadMenu(你添加菜单资源的ID);

SetMenu(&m_menu)

为了回答你的问题。我用图片来显示

新建一个MFC工程,选择单文档。

 打开资源视图列表

选择插入一个对话框

然后在d出来的对话框点击右键或者双击(我电脑抽疯,双击还不行了),选择添加一个类。

  然后在回到资源视图,打开menu菜单,点击IDR_MAINFRAME

   在上面菜单栏编辑你要的菜单项,点击右键或者双击,添加命令响应,选择view类。

然后就是添加函数啊。要记得在Ctest1View里面加上dlg.h这个头文件

效果如图。

你要在有什么不懂,可以问我。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11910375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存