2 virgo0905 virgo0905 于 2016.01.13 17:33 提问

使用ocx控件关联变量,其m_hWnd=NULL

我用C++写了一个OCX控件。在MFC程序调用的使用,对该控件关联了一个变量m_myoxc。然后模仿其它人的代码进行判断if(m_myoxc.m_hWnd == NULL){ return -1}。我也不知道为什么这么写。但是现在程序卡在这边了。在什么情况下m_myoxc.m_hWnd == NULL??我控件也注册过了。

4个回答

91program
91program   Ds   Rxr 2016.01.13 17:54
已采纳

控件这是初始化成功,m_hWnd 应该就不为空。
否则,说明控件变量初始化失败。可以在 OCX 控件的初始化部分代码中增加一个 LOG 看看。

virgo0905
virgo0905 回复91program: 谢谢。就是控件加载失败
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.01.13 20:02

你有没有把控件加载上去,最简单的做法是在对话框编辑器上点右键,选择插入activex控件(如果找不到,先注册),选择你的控件。然后再ctrl+w打开类向导,映射变量。

happyparrot
happyparrot   Ds   Rxr 2016.01.15 07:47

你只是定义了控件变量,但控件的窗口句柄还未创建。一般需要执行Create后才会产生m_hWnd。
如果控件在对话框中,那么应该在执行完OnInitDialog后才会产生。

oyljerry
oyljerry   Ds   Rxr 2016.01.13 19:59

ocx一般需要调用初始化代码,这样控件变量才能实例化

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!