Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi外壳上下文菜单,如何绘制图标_Delphi_Shell_Contextmenu - Fatal编程技术网

Delphi外壳上下文菜单,如何绘制图标

Delphi外壳上下文菜单,如何绘制图标,delphi,shell,contextmenu,Delphi,Shell,Contextmenu,我可以得到一些代码来显示如何在右键单击上下文菜单上绘制位图/图标吗 我已经为上下文菜单的DLL编写了工作代码,但它只是文本。这里的示例:您只需使用API即可 这是一个Delphi示例 编辑2:警告:我刚刚注意到Delphi示例泄漏了位图句柄,可能最终会使系统崩溃。位图应该只在对象的构造函数中加载一次(最好是从它自己的资源中加载,而不是从文件系统加载),然后在析构函数中释放。或者你可以使用InsertMenuItem而不是InsertMenu,我想这一切都可以一次性完成。谢谢!使用SetMenuI

我可以得到一些代码来显示如何在右键单击上下文菜单上绘制位图/图标吗

我已经为上下文菜单的DLL编写了工作代码,但它只是文本。这里的示例:

您只需使用API即可

这是一个Delphi示例


编辑2:警告:我刚刚注意到Delphi示例泄漏了位图句柄,可能最终会使系统崩溃。位图应该只在对象的构造函数中加载一次(最好是从它自己的资源中加载,而不是从文件系统加载),然后在析构函数中释放。

或者你可以使用
InsertMenuItem
而不是
InsertMenu
,我想这一切都可以一次性完成。谢谢!使用SetMenuItemBitmaps(InsertMenuItem似乎要复杂得多)。然而。。如果在调用后释放位图,则它不会显示。不确定DLL代码中的析构函数是什么来释放位图:?您可以在
TTODEMENU
类中重写
构造函数
/
析构函数
。或者在
初始化
中加载位图,并在装置的
结束
部分释放位图。但装置中的DLLYou can中没有结束。