编写象WINZIP右键菜单的问题?我已经解决了大部分,但还有个小问题?(50分)

  • 主题发起人 主题发起人 kiss2
  • 开始时间 开始时间
K

kiss2

Unregistered / Unconfirmed
GUEST, unregistred user!
function tcontextmenu.querycontextmenu(menu: hmenu; indexmenu, idcmdfirst,<br>&nbsp; idcmdlast, uflags: uint): hresult;<br>begin<br>&nbsp; result := 0;<br>&nbsp; if ((uflags and $0000000f) = cmf_normal) or<br>&nbsp; &nbsp; ((uflags and cmf_explore) &lt;&gt; 0) then begin<br>&nbsp; &nbsp; // 往context menu中加入一个菜单项 ,菜单项的标题为察看位图文件<br>&nbsp; &nbsp; insertmenu(menu, indexmenu, mf_string or mf_byposition, idcmdfirst, &nbsp;pchar('文件操作1'));<br>&nbsp; &nbsp; insertmenu(menu, indexmenu, mf_string or mf_byposition, idcmdfirst, &nbsp;pchar('文件操作2'));<br>&nbsp; &nbsp; insertmenu(menu, indexmenu, mf_string or mf_byposition, idcmdfirst, &nbsp;pchar('文件操作3'));<br>&nbsp; &nbsp; // 返回增加菜单项的个数<br>&nbsp; &nbsp; result := 3;<br>&nbsp; end;<br>end;<br><br>这段代码是增加菜单的,我共增加了3条菜单,怎样对每个菜单进行操作呢??我看了DELPHI中的例子,它只是对一个菜单进行操作。<br>
 
在增加的同时,加入关联的程序接口,你再看看例子中的代码吧。
 
我把例子都看透了,但就是不知道怎么做啊,请指点指点吧!
 
急~~~~~~~~~~~~~~
 
TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;<br><br>...<br><br>&nbsp; &nbsp; H := WinExec(PChar(Format(GetCompilerPath, [FFileName])), lpici.nShow);<br><br>....<br>
 
传递不同命令行参数,根据命令行参数来判断<br>如/s /c
 
我知道是<br>function TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;<br>var<br>&nbsp; H: THandle;<br>&nbsp; PrevDir: string;<br><br>begin<br>&nbsp; Result := E_FAIL;<br>&nbsp; if (HiWord(Integer(lpici.lpVerb)) &lt;&gt; 0) then<br>&nbsp; begin<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; if (LoWord(lpici.lpVerb) &lt;&gt; 0) then begin<br>&nbsp; &nbsp; Result := E_INVALIDARG;<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; H := WinExec(PChar(Format(GetCompilerPath, [FFileName])), lpici.nShow);<br>&nbsp; &nbsp; Result := NOERROR;<br>&nbsp; finally<br>&nbsp; &nbsp; SetCurrentDir(PrevDir);<br>&nbsp; end;<br>end;<br><br><br>我是说我增加了三个菜单,怎样用不同的命令来表达??<br>比如说<br>单击菜单1用 &nbsp;H := WinExec(PChar(Format(GetCompilerPath, [FFileName])), lpici.nShow);<br>单击菜单2用 &nbsp;H := WinExec(PChar(Format(GetCompilerPath, [FFileName1])), lpici.nShow);<br>单击菜单3用 &nbsp;H := WinExec(PChar(Format(GetCompilerPath, [FFileName2])), lpici.nShow);<br>
 
我的意思是在<br>function TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo): HResult;<br>中怎样判断单击菜单1,2,3时所发生的事件
 
通过(var lpici: TCMInvokeCommandInfo)参数就可以标识了。
 
为什么不看看WINZIP的源码?
 
to CJF: 我不知道怎样通过lpici参数??能给我举个例子吗??十分感谢!!
 
没人知道??<br>那lpici.lpverb是什么函数?有什么用?
 
我已经自己解决了,白送分把!
 
后退
顶部