用于图像字段的cxgrid自定义menuitem(打开方式)

时间:2014-06-03 06:37:38

标签: delphi devexpress delphi-xe4 tcxgrid

在cxGrid中我有一个列是" Image"类型(属性=图像,GraphicClassName = TJpegImage)。 对于PopUpMenuLayout - MenuItems,我添加了一个名为" Open With ..."的CustomMenuItem。 如何实现此自定义菜单项,以便使用Paint(Windows Paint)打开我的基础图像?或至少触发"打开..." Windows对话框。

1 个答案:

答案 0 :(得分:2)

如果您将图像存储在数据库中,则首先必须将其保存到计算机上的图像文件中。

然后您可以使用ShellExecute以默认图像查看/编辑程序打开此图像。 ShellExecute的工作方式与用户双击文件的方式基本相同。问题是通常双重舔图像文件打开它的预览,所以如果你需要使用ShellExecute编辑该图像可能不是最好的方法。

现在为了确保打开图像以进行编辑而不仅仅是在预览中,您必须阅读Windows注册表以获取有关用于查看和编辑该特定图像格式的程序的信息,然后使用CreateProcess API而不是。

您还可以通过使用CreateProcess API调用启动该程序并将图像位置作为启动参数传递来确保使用特定程序打开图像(大多数图像编辑程序将第一个参数视为文件以在启动时打开