首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IContextMenu除了复制和剪切之外,所有命令都正常工作。

IContextMenu除了复制和剪切之外,所有命令都正常工作。
EN

Stack Overflow用户
提问于 2013-05-20 15:42:21
回答 1查看 531关注 0票数 1

我正在开发一个windows-explorer类型的应用程序,因为我试图调用IContextMenu操作,如复制、粘贴、属性、删除等,但是只复制和剪切操作没有完成,因为它们正在成功调用。

请见下文设想情况;

我将CMINVOKECOMMANDINFO.lpVerb设置为相应的命令字符串(“复制”、“粘贴”、“属性”等)。

代码语言:javascript
复制
CMINVOKECOMMANDINFO cmici={ sizeof(CMINVOKECOMMANDINFO) };
ZeroMemory( &cmici, sizeof(CMINVOKECOMMANDINFO));
cmici.cbSize = sizeof(CMINVOKECOMMANDINFO);
cmici.fMask=0;
cmici.hwnd=m_pOwnerWnd!=NULL ? m_pOwnerWnd->GetSafeHwnd() : NULL;
cmici.lpVerb= "copy";
cmici.lpParameters= NULL;
cmici.lpDirectory=NULL;
cmici.nShow=SW_SHOWNORMAL;
cmici.dwHotKey=0;
cmici.hIcon=NULL;

获取ITEMIDLIST的控制菜单;

代码语言:javascript
复制
HRESULT hResult = lpParentFolder->GetUIObjectOf(
  m_pOwnerWnd!=NULL ? m_pOwnerWnd->GetSafeHwnd() : NULL, 1,
  (const struct _ITEMIDLIST**)&(lpRelativeIDL), IID_IContextMenu, 0,
  (LPVOID*)&lpcm)

查询内容菜单;

代码语言:javascript
复制
hResult=lpcm->QueryContextMenu(hMenu,0,1,0x7fff,dwFlags);

最后调用;

代码语言:javascript
复制
    hResult=lpcm->InvokeCommand(&cmici);

::DestroyMenu(hMenu);

lpcm->Release();

if(FAILED(hResult))  
    return FALSE;

return TRUE;

命令删除、属性、粘贴等除复制和剪切外工作良好

有谁能在这方面帮我吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 07:24:31

OleInitialize.标题下的链接中也提到了同样的问题。

我将对OleInitialize()的调用转移到表单的OnCreate事件处理程序,剪切/复制菜单项开始工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16653162

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档