AfxEnableControlContainer 函数的使用与意义
AfxEnableControlContainer()函数是允许应用程序作为控件容器来使用,对于用MFC向导自动生成的单文档框架程序的C...APP::InitInstance()函数中自动加了这一句 AfxEnableControlContainer();AfxEnableControlContainer() 负责布线所需的 CWnd 对象,以包含OLE 控件支持结构。如果选择 O
·
AfxEnableControlContainer()函数是允许应用程序作为控件容器来使用,对于用MFC向导自动生成的单文档框架程序的C...APP::InitInstance()函数中自动加了这一句 AfxEnableControlContainer();
AfxEnableControlContainer() 负责布线所需的 CWnd 对象,以包含 OLE 控件支持结构。如果选择 OLE 控件支持时,此调用应用程序向导通过添加到项目中。您需要手动添加此调用,在以下情况中:
- 要控制容器支持添加到现有项目。-或者-
- 将包含 OLE 控件的对象不是直接由应用程序向导,如 OLE 控件创建的。
下面的列表列出了一些最常见的问题 (其他人是可能的),如果未调用 AfxEnableControlContainer() 可能会出现:
- 在许多情况下,您可能会收到下面的调试器输出窗口中跟踪消息:
>>> If this dialog has OLE controls: >>> AfxEnableControlContainer has not been called yet. >>> You should call it in your app's InitInstance function.
- 在其他情况下,您可能会遇到以下文件 Cmdtarg.cpp,行 218 中的断言:
ASSERT(afxOccManager != NULL);
- 如果您 Masked Edit 上放置或某些其他 OLE 控件 CFormView,然后运行该应用程序,您可能会看到一个消息框,表明:
创建空文档失败。
-
在用AppWizard创建新的应用程序时,你的应用程序就被缺省设置为控件包容器,即在第3步选中支持ActiveX Controls的复选框。如果你在创建过程中没有选择这项技术支持,以后也可以手动地加入这项支持。如果你手动添加这个函数,和APPWIZEARD添加效果是一样的
更多推荐
已为社区贡献1条内容
所有评论(0)