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

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

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

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

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

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