1、MFC调用windows右键菜单

调用windows右键菜单主要用到了CShellContextMenu类

1、在MFC项目中添加类CShellContextMenu类,添加类选择C++类即可;

2、使用CShellContextMenu类.h和.cpp文件替换项目工程下文件;

3、在MFC中通过CShellContextMenu类调用windows右键菜单:

以ListCtrl下调用为例:


//右键处理文件对应路径
CString  tem_strFilePath;                     
CShellContextMenu* tem_iContextMenu;
tem_iContextMenu = new CShellContextMenu();
tem_iContextMenu->SetObjects(tem_strFilePath);
//设置菜单弹出坐标
CPoint   tem_ptClick(pNMItemActivate->ptAction);
m_conListCtrl.ClientToScreen(&tem_ptClick);
tem_strRC = tem_iContextMenu->ShowContextMenu(this, tem_ptClick);
注1:通过tem_strRC可查看点击了哪项右键菜单,便于针对不同的操作进行不同的处理;

注2:.cpp文件对于Unicode和ANSI是不同的,需要做一定修改。

HRESULT GetCommandString(
   UINT_PTR idCmd,
   UINT     uFlags,
   UINT     *pwReserved,
   LPSTR    pszName,
   UINT     cchMax
);
Unicode下 uFlags = GCS_VERBW;  ANSI下uFlags = GCS_VERBA;
注3:GetCommandString----MSDN注解地址https://msdn.microsoft.com/en-us/bb776094(VS.85).aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值