赛迪网 > IT技术 C/C++ > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

用C++ Builder创建上下文菜单扩展处 (3)

发布时间:2006.02.09 05:57     来源:CSDN    作者:行舟

CMINVOKECOMMANDINFO的成员简介如下:

1) cbSize :结构的大小。

2) fMask :为0,或下列标志的组合。

CMIC_MASK_ASYNCOK在返回之前等待DDE会话结束
CMIC_MASK_FLAG_NO_UI当执行命令时,系统防止显示用户接口元素(如错误信息)
CMIC_MASK_HOTKEYdwHotKey 成员有效
CMIC_MASK_ICONhIcon成员有效
CMIC_MASK_NO_CONSOLE如果上下文菜单handler必须创建新进程,正常情况下将创建一个控制台,设置CMIC_MASK_NO_CONSOLE标志可以禁止创建新的控制台

3) hwnd :拥有上下文菜单窗口的句柄,handler可以使用这个句柄显示自己的信息提示框和对话框。

4) lpVerb :32位值,高位字包含0,低位字是命令的菜单ID偏移。当用户选择一个菜单命令时,Shell用MAKEINTRESOURCE宏产生这个值,如果高位字不是0,那么这个成员指向一个以NULL结尾的字符串,指出命令的语言无关的名称,即上文的verb。典型情况下,当命令被一个应用程序激活时,这个成员是一个字符串。系统提供了下面几个预定义的常数值:

字符串
CMDSTR_NEWFOLDER"NewFolder"
CMDSTR_VIEWDETAILS"ViewDetails"
CMDSTR_VIEWLIST"ViewList"

5) lpParameters :命令传送的参数字符串,对于shell扩展插入的菜单项,这个成员总是NULL。

6) lpDirectory :目录名称,对于shell扩展插入的菜单项,这个成员总是NULL。

7) nShow :显示窗口或启动应用程序时,传递给ShowWindow函数的参数。

8) dwHotKey :分配给被命令激活的应用程序的热键。如果fMask 不是CMIC_MASK_HOTKEY,这个成员被忽略。

9) hIcon :被命令激活的应用程序使用的图标。如果fMask 不是CMIC_MASK_ICON,这个成员被忽略。

以下示例先打开一个"选择文件"的对话框,然后用所选择的程序打开在资源管理器中被选择的文件。为了简化,假定在资源管理器只选择了一个文件。

HRESULT __stdcall TAddContextMenuImpl::InvokeCommand(LPCMINVOKECOMMANDINFO pici)

{

if(HIWORD(pici->lpVerb)==0)

{

if(LOWORD(pici->lpVerb)==0) // 添加的第一个菜单项

{

TOpenDialog *Dlg=new TOpenDialog(NULL);

Dlg->Title="打开\"";

Dlg->Title=Dlg->Title+g_szFilePath+"\"";

Dlg->Options.Clear();

Dlg->Options << ofFileMustExist << ofPathMustExist << ofNoChangeDir;

if(Dlg->Execute())

{

ShellExecute(pici->hwnd,"open",Dlg->FileName.c_str(),g_szFilePath,NULL,SW_SHOW); }

return S_OK;

}

}

return S_FALSE;

}

<<上一页 1 2 3 4 5 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· C++编程人员容易犯的10个C#错误 (02-08) · C++中用函数模板实现和优化抽象操作 (02-07)
· C++类型转换时定义非成员函数 (02-07) · C++继承性应用实例 日期和时间 (02-07)
· C++中的静态联编和动态联编介绍 (01-19) · C++编程批评系列 继承的本质 (01-17)
· 提供一个基于C++的加密/解密算法 (01-10) · C#中实现DataGrid双向排序 (01-10)
· C++之父Bjarne谈C++在2005年 (01-10) · 周末巨献:有可能挑战Java优势的四种技术 (12-09)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管