1、MFC调用windows右键菜单

来源:互联网 发布:linux网络编程教程 编辑:程序博客网 时间:2024/06/05 11:46

调用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


原创粉丝点击