如何象WINZIP那样在动态菜单上加进图标?(100分)

  • 主题发起人 主题发起人 liaha
  • 开始时间 开始时间
L

liaha

Unregistered / Unconfirmed
GUEST, unregistred user!
加进菜单我会,可是不会加图标,那位高手给解决办法,<br>最好有源码.
 
对此问题感兴趣。
 
跟踪问题.
 
呵呵,以为有答案了,原来只跟踪,呵呵,那么,我也 ....
 
???<br>"开始"菜单? 加个shortcut, shortcut里不是有图标吗?<br>自己程序的菜单? TMenuItem不是有Image属性吗?
 
faint<br>eYes:右键菜单
 
用SetMenuItemInfo里面的MENUITEMINFO结构中的fType设定menuitem的图标.
 
uses shlobj;<br><br>使用TContextMenu.InvokeCommand(var lpici: TCMInvokeCommandInfo);<br><br>lpici结构中的fMask 设置为 CMIC_MASK_ICON <br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;hIcon 设置为图标的Handle.
 
hehe,Delphi不是有Demo吗?
 
我知道应该在创建菜单时,设menuitemInfo.fType=MFT_OWNERDRAW,<br>然后响应 WM_MEASUREITEM 和 WM_DRAWITEM 消息.<br>具体怎么响应,还没试出来,欢迎各位同仁一起努力,共分$<br>另外,DELPHI的DEMO中也只能加进菜单,没有加图标,<br>你是指contextm吧.<br>
 
我知道可以从IContextMenu2继承建立com构件,<br>在建立菜单时设ftype=MFT_OWNERDRAW,<br>在IContextMenu2::HandleMenuMsg中响应<br>WM_DRAWITEM, WM_MEASUREITEM,自己画icon.<br>可是一旦从IContextMenu2继承,我什么菜单都加不进去,<br>跟踪发现,只触发IShellExtInit_Initialize,<br>根本不触发QueryContextMenu.<br>有谁知道怎么回事?
 
是需要做一个DLL的,我知道的全在这儿了,呵呵
 
作出来了。<br>在contextm.pas中InsertMenu语句下面加一行:<br>SetMenuItemBitmaps(Menu,indexMenu,MF_BYPOSITION,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LoadBitmap(HInstance,PChar('myBitmap')),0);<br>'myBitmap'是编译到DLL中的位图资源名。
 
有谁用过zipmagic? 这怎么实现?
 
接受答案了.
 
-&gt;o*o<br>使用SetMenuItemBitmaps(Menu,indexMenu,MF_BYPOSITION,<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;LoadBitmap(HInstance,PChar('myBitmap')),0);<br>具体如何实现,我对api不是很熟。
 
我要记下,好好的想想才行。
 
给个完整的程序实例吧![^]
 
后退
顶部