另外一个创建对话框失败的原因来自如下代码,可能这个原因不那么容易看出来。
这里,我们定义了一个列表控件(ListView Control),但是需要注意的是,使用列表控件之前,需要调用 InitCommonControlsEx 来注册它的窗口类。
创建对话框失败的根本原因是:这个对话框上可能有些控件的窗口类没有提前注册。
如果你使用到了以下控件,则一定记得调用 来初始化它们。
> 工具栏(Toolbar)
> 状态栏(Status Bar)
> 树控件(Tree View)
> 列表控件(List View)
> 动画控件(Animation)
> 热键对象(Hot-key)
> 图片列表对象(Image list)
> 标签页(Tab)
这些控件的可执行代码都放在comctl32.dll中.要使用通用控件,必须通过 InitCommonControlsEx 来加载它.
例如,可能对话框上有一个富文本控件(RichEdit Control),但开发者没有在使用它之前正确的加载(LoadLibrary)它,就会导致对话框创建失败。
总结
请牢记以上编程”套路”,日后少走弯路。
同时,你对事物的理解将更加深入一个层次。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why can’t I create my dialog box? Rookie mistake #2》