【问题标题】:How to create your own control[Win32 - C++]如何创建自己的控件[Win32 - C++]
【发布时间】:2013-06-20 09:08:24
【问题描述】:

我使用 MFC 创建了控件派生类,例如从 CListCtrl 派生的 FolderLister 或彩色富编辑控件。所以我想将它们保存在一个文件中,因为这样项目会变得非常混乱。我可以创建自己的控件派生自一个控件然后在工具箱中使用它?或者我可以将我的课程保存在一个文件中,以便我可以将它存储在一个文件中? 我正在搜索 2 天仍然不知道我应该使用静态库还是创建一个 activex 控件该怎么办?或使用 atl。

对不起我的英语。 提前致谢。

【问题讨论】:

    标签: c++ mfc activex atl ocx


    【解决方案1】:

    您可能想要创建 ActiveX 控件。您可以使用 MFC、ATL 或(如果您是自虐狂)自己来做到这一点。

    在这三个中,通常使用 MFC 最容易,而您自己最难。 MFC 的问题是控件往往非常大。 ATL 让您生成的控件几乎 就像您完全手工编写它们一样小,并且只比使用 MFC 开发稍微困难一点。

    【讨论】:

      【解决方案2】:

      这是 Windows 中的一种与生俱来的能力。按钮控件就是一个很好的例子,只需调用 CreateWindowsEx() 并传递 L"Button" 作为类名,您就拥有了一个按钮控件。它们是内置于 Windows 中的控件。

      使用此方案创建您自己的方案非常简单。只需使用导出的 Initialize() 函数创建一个 DLL 项目。在该函数中调用 RegisterClassEx() 来注册您自己的控件类。客户端代码现在可以简单地调用 CreateWindowEx() 并传递您的控件类名称来获取您对其窗口的控制。正是您在 WNDCLASSEX 中注册的窗口过程为窗口提供了自定义行为。添加您自己的消息以允许客户端配置您的控件并调用自定义功能。这正是普通控件的工作方式,初始化函数为InitCommonControls,自定义消息在CommCtrl.h头文件中声明。

      您可以通过使 Windows 自动查找和加载您的 DLL 并使您的控件在设计器中工作的方案无限地复杂化该模式。 ActiveX 控件背后的想法。相当的学习曲线,最好保持简单。

      【讨论】:

        猜你喜欢
        • 2010-10-12
        • 1970-01-01
        • 2018-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-29
        • 2014-05-13
        相关资源
        最近更新 更多