作者:苏绿儿520 | 来源:互联网 | 2023-01-25 09:22
我在SDK编程的时候,我建立了一个主窗口,和一个对话框。在对话框加入了一个MicrosoftADODataControl6.0控件和MicrosoftCommonDialogContro
我在SDK编程的时候,我建立了一个主窗口,和一个对话框。在对话框加入了一个Microsoft ADO Data Control 6.0控件和Microsoft Common Dialog Control 6.0控件。但加入后我的对话框不能显示了!所以想请问一下各位老师。这是怎么回事?我见人家用VB一导入一个控件,就立即可以使用,不怕窗口显示不了。
而在我SDK编程的时候,不行啊!那些什么进度条、工具栏这些我知道怎么初始化或者要做一些什么工作。但是我加入一些“自定义控件”的时候,却显示不出来,连对话框也不显示。真的不明白。为什么会这样?是不是SDK编程时候和对话框使用“自定义控件”是不行的?
请各位老师指点一下我这个迷途的小书童 。
10 个解决方案
那是怎么回事?是不能用,还是用法不对,还是什么……?
楼上的这位老师。
我帖子一开始已经说明是SDK方式编程。一个主窗口,一个对话框,我在对话框上边插入我所说的控件。但是显示不出来,主窗口就得,但调用对话框的时候就不能了?
如果老师认为我用法不对,请老师指点。写出如果在SDK中添加我以上所写的自定义控件。
这玩意儿一般叫ActiveX控件和公共控件,不是自定义控件。
使用ActiveX控件要初始化Com库:
CoInitializeEx/CoInitialize
使用公共控件要初始化公共控件库:
InitCommonControlsEx/InitCommonControls
下面给一段MSDN上的:
向对话框添加控件导致对话框不再工作
将公共控件或 Rich Edit 控件添加到对话框之后,在测试对话框时该控件不出现,或者对话框本身不出现。
问题示例
创建 Win32 项目,修改应用程序设置以创建 Windows 应用程序(不是控制台应用程序)。
在资源视图中,双击 .rc 文件。
在 Dialog 选项下,双击“关于”框。
将一个“IP Address Control”添加到对话框。
保存并“重新生成”。
执行程序。
在对话框的“帮助”菜单上,单击“关于”命令;没有显示任何对话框。
原因
目前,将下列公共控件或 Rich Edit 控件拖放到对话框上时,对话框编辑器不自动在项目中添加代码。当此问题发生时,Visual Studio 既不提供错误也不进行警告。必须手动为控件添加代码。
Slider Control Tree Control Date Time Picker
Spin Control Tab Control Month Calendar
Progress Control Animation Control IP Address Control
Hot Key Rich Edit Control Extended Combo Box
List Control Rich Edit 2.0 Control Custom Control
公共控件的修复
为了在对话框上使用公共控件,需要在创建对话框之前调用 InitCommonControlsEx 或 AFXInitCommonControls。
RichEdit 控件的修复
必须为 Rich Edit 控件调用 LoadLibrary。有关更多信息,请参见 Platform SDK 中的对 RichEdit 1.0 控件使用 MFC、关于 Rich Edit 控件,以及 Rich Edit 控件概述。
用那个IP地址控件我会用,但其他控件就不得了。比如Media Player这个控件,不能了啦?或者通用对话框,初始化的时候没有他们的名字类。ActiveX控件不知道怎么用啊,通用的就知道了。
但我加Mackz老师所提供的函数进行初始化COM库,但还是显示不了。
能否给出例子,成功验证的例子。