AfxEnableControlContainer 函数的使用与意义

AfxEnableControlContainer()函数是允许应用程序作为控件容器来使用,对于用MFC向导自动生成的单文档框架程序的C...APP::InitInstance()函数中自动加了这一句 AfxEnableControlContainer();

AfxEnableControlContainer() 负责布线所需的 CWnd 对象,以包含 OLE 控件支持结构。如果选择 OLE 控件支持时,此调用应用程序向导通过添加到项目中。您需要手动添加此调用,在以下情况中:


  • 要控制容器支持添加到现有项目。-或者-

  • 将包含 OLE 控件的对象不是直接由应用程序向导,如 OLE 控件创建的。
例如,如果动态地创建 OLE 控件作为另一个 OLE 控件的子级,父控件必须在其构造函数中调用 AfxEnableControlContainer()。

下面的列表列出了一些最常见的问题 (其他人是可能的),如果未调用 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添加效果是一样的   
  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值