如何在 Win32 窗口中实现 MFC 资源?
Posted
技术标签:
【中文标题】如何在 Win32 窗口中实现 MFC 资源?【英文标题】:How can I implement a MFC resource within a Win32 window? 【发布时间】:2018-03-21 02:19:44 【问题描述】:我有两个项目,一个使用 Win32 API 的旧项目,它有一个使用 Win32 图形的旧工具栏,另一个使用具有更好图形的 MFC 代码(我正在创建一个类似于 Microsoft Office 使用的功能区工具栏)。我使用的 MFC 类继承自 CDialogEx 和 CWinApp。
我要做的是将功能区工具栏放在我的 Win32 窗口中并替换旧的。我已经将 MFC 项目用作静态库来引用它,并且可以从我的 Win32 项目中调用这些类,但我还不能显示新的工具栏。
我需要做什么才能实现这一目标?
【问题讨论】:
【参考方案1】:使用 MFC 创建框架并将旧代码移动到新框架中可能会容易得多。
可以在没有 Doc/View 架构的情况下创建 MFC 项目。
MFC 功能区将并且只能存在于作为 CWinAppEx 一部分的 CMFCFrameWnd 中...仅将功能区代码提取到普通 Win32 应用程序中应该会失败。
但也有Win32 Ribbon Framework。在旧的 Win32 项目中实现这一点可能会容易得多。
描述了如何实现这一点here。
在 Codeproject 中你可以找到sample 的使用方法。
【讨论】:
感谢您的回答!问题是我的 Win32 项目中有 1000 行代码,其中包含一些复杂的 GUI 和 C++ 依赖项,所以我想保持不变。我之前已经尝试过您建议的工具,但我无法完全自定义它(特别是功能区工具栏选项卡,无法添加图标,只能添加文本)。因此,我使用了一种名为 Exontrol 的许可产品,它可以让您做到这一点,并且还可以使用 MFC。我基本上只需要在我现有的 Win32 窗口中放置一个工具栏,所以我想知道是否有办法。 参见 Codeproject 文章。也可以添加图标! 是的,可以在标签组中添加图标。但是除了文本之外,我还需要将图标添加到选项卡本身,这是使用框架无法实现的。以上是关于如何在 Win32 窗口中实现 MFC 资源?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 mfc CListCtrl 中实现简单的复制/粘贴功能?