我使用 MFC 创建了控件派生类,例如从 CListCtrl 派生的 FolderLister 或彩色富编辑控件。所以我想将它们保存在一个文件中,因为这样项目变得非常混乱。我可以从控件创建自己的控件派生吗在工具箱中使用它?或者我可以将我的课程保存在一个文件中,以便我可以将它存储在一个文件中?我正在搜索 2 天仍然不知道我应该使用静态库还是创建一个 activex 控件该怎么办?或使用 atl。
对不起我的英语不好。提前致谢。
您可能要创建 ActiveX 控件。您可以使用 MFC、ATL 或(如果您是自虐狂)自己来做到这一点。
在这三个中,通常使用 MFC 最容易,而您自己最难。MFC 的问题是控件往往非常大。ATL 让您生成的控件几乎与您完全手工编写它们一样小,并且仅比使用 MFC 进行开发稍微困难一些。
这是 Windows 中与生俱来的能力。按钮控件就是一个很好的例子,只需调用 CreateWindowsEx() 并传递 L"Button" 作为类名,您就拥有了一个按钮控件。它们是内置于 Windows 中的控件。
使用此方案创建自己的方案非常简单。只需使用导出的 Initialize() 函数创建一个 DLL 项目。在该函数中调用 RegisterClassEx() 来注册您自己的控件类。客户端代码现在可以简单地调用 CreateWindowEx() 并传递您的控件类名称来获取您对其窗口的控制。正是您在 WNDCLASSEX 中注册的窗口过程为窗口提供了自定义行为。添加您自己的消息以允许客户端配置您的控件并调用自定义功能。这正是普通控件的工作方式,初始化函数为InitCommonControls,自定义消息在CommCtrl.h头文件中声明。
您可以通过使 Windows 自动查找和加载您的 DLL 并使您的控件在设计器中工作的方案无限地复杂化该模式。ActiveX 控件背后的想法。相当的学习曲线,最好保持简单。