如何创建自己的控件[Win32 - C ++]

时间:2013-06-23 21:48:35

标签: c++ mfc activex atl ocx

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

抱歉我的英文。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

您可能想要创建和ActiveX控件。您可以使用MFC,或使用ATL,或者(如果您是受虐狂)自己完成。

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

答案 1 :(得分:1)

这是Windows中的天生能力。一个按钮控件就是一个很好的例子,只需调用CreateWindowsEx()并为类名传递L“Button”,你就得到了一个按钮控件。它们是Windows内置的控件。

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

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