为什么我的GetControlUnknown()总是返回NULL

忠向 2003-08-12 05:48:22
我用VC6作EXCEL2000的二次开发,在我的程序的一个对话框要使用其他第三方的ActiveX控件,我把以前在MFC下的程序照搬过来(当然,以前的没问题),实例代码如下:

HWND hwndTree = GetDlgItem(IDC_FGTREE);//指向ActiveX控件1
HWND hwndList = GetDlgItem(IDC_FGLIST);//指向ActiveX控件2

CWnd wndList;
wndList.Attach(hwndList);

CWnd wndTree;
wndTree.Attach(hwndTree);

IUnknown *spTree = wndTree.GetControllingUnknown();//GetControlUnknown();
IUnknown *spList = wndList.GetControllingUnknown();//GetControlUnknown();

调试过程中,发现无论使用GetControlUnknown()还是GetControllingUnknown(),返回的IUnknown指针都是NULL,我要用这个指针,怎么办呀?哪位高手请指点,谢谢!
...全文
161 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
忠向 2003-08-14
  • 打赏
  • 举报
回复
自己顶一下!
忠向 2003-08-14
  • 打赏
  • 举报
回复
今天翻了控件的文档手册,解决了,谢谢lop5712(LOP),说得很有道理,希望各位继续就此问题深入讨论!一周以后散分!
lop5712 2003-08-14
  • 打赏
  • 举报
回复
你的两个CWnd都是临时变量,Attach只是简单的CWnd::m_hWnd = hWnd;,再添个映射而已,根本不会有IUnknown指针
你在获得控件时不应通过HWND来获得,而应直接获取其接口,至于怎样做,非常抱歉,这方面我不熟,不清楚

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧