如何将 winforms 对话框附加到现有的工具栏/菜单栏(编译的 C++ 应用程序)?

Posted

技术标签:

【中文标题】如何将 winforms 对话框附加到现有的工具栏/菜单栏(编译的 C++ 应用程序)?【英文标题】:How to attach a winforms dialog to an existing toolbar/menubar (compiled C++ app)? 【发布时间】:2009-04-14 20:12:24 【问题描述】:

要在 Microsoft Wordpad 工具栏/菜单栏上附加一个 winforms 对话框?

【问题讨论】:

【参考方案1】:

首先,您需要将程序集加载到目标进程中。

那么您需要use Win32 API functions to create the new menu item,并带有唯一的子 ID。

最后,您需要subclass the window procedure 和处理WM_COMMAND 消息,这些消息由Windows 在选择本机菜单项时生成。请务必通过调用 base.WndProc 将所有其他消息(包括与您的菜单项不匹配的 WM_COMMAND 消息)处理到原始窗口过程。

当然,这不适用于 Windows 7 写字板,因为它没有菜单或工具栏,它使用新的“功能区”控件。不过,Ribbon API 可能会为您提供一种添加新项目的方法。

【讨论】:

【参考方案2】:

Microsoft Windows Common Controls (COMCTL32.OCX) 提供的 Toolbar 控件可由用户自定义...

http://support.microsoft.com/kb/q174087/

【讨论】:

以上是关于如何将 winforms 对话框附加到现有的工具栏/菜单栏(编译的 C++ 应用程序)?的主要内容,如果未能解决你的问题,请参考以下文章

如何将指标附加到现有的 Lambda 日志组?

如何使用附加模式将音频录制到现有的音频文件中?

如何将行附加到现有的 SYS_REFCURSOR?

如何将 Excel 转换为 JSON 并将其附加到现有的 JSON 文件?

如何附加到现有的 java.io.ObjectStream? [复制]

如何使用 fast-csv npm 将新行或新行的数据(新行)附加到现有的 csv 文件