我从 ATL::CWindowImpl<CMyCustomControl>
派生了一个自定义控件并声明DECLARE_WND_CLASS(_T("CMyCustomControl"))
.
我还使用自定义控件创建了一个对话框资源,其类名 CMyCustomControl
.
如何正确注册控件以便可以将其显示在对话框上?
最佳答案
在 WTL 中创建自定义控件有三种典型方法。
DECLARE_WND_CLASS
/DECLARE_WND_SUPERCLASS
+RegisterClassEx
API 按名称注册类 + 对话框模板中的自定义控件引用以通过类名称实例化控件<- 实现窗口类,尤其是。继承自
CWindowImpl
,并手动创建控件,尤其是。来自OnCreate
/OnInitDialog
- 实现窗口类,通过对话框模板实例化标准控件,并对控件实例进行子类化以更改其行为(例如,具有超链接的静态、自定义 ListView 、具有颜色突出显示的编辑控件等)
对于这三者,您需要做的不仅仅是类定义中的宏。您可以在这里找到很好的例子:http://www.viksoe.dk/code/all_wtl.htm在“控件”部分下。
当然,第四种方法是实现 ActiveX 控件。
关于c++ - 如何在ATL/WTL对话框上注册自定义控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110061/