怎样在ATL中使用ActiveX控件?

ffll 2002-03-27 11:55:15
我用ATL做一个ActiveX控件,我想在其中使用另外一个ActiveX控件,请问怎样使用?ATL能不能帮我生成一个包装类?如果不能,我是不是只能通过最原始的COM接口方法去访问它?在 vc6 !!!和!!! vc.net下
...全文
30 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_C_K 2002-03-29
  • 打赏
  • 举报
回复
学习一下
masterz 2002-03-29
  • 打赏
  • 举报
回复
CComQIPtr<IWebBrowser2> m_spBrowser;
CAxWindow content_wnd;
......
if( _tcslen(m_tcHtmlFileName) > 0 )
{
RECT rc;
GetClientRect( &rc );
if(m_spBrowser==NULL)
{
LPOLESTR pstrbrowserid;
StringFromCLSID(IID_IWebBrowser2,&pstrbrowserid);
_bstr_t bstrbrowser(pstrbrowserid);
CoTaskMemFree(pstrbrowserid);
if(content_wnd.IsWindow())
content_wnd.DestroyWindow();
content_wnd.Create( m_hWnd, rc, LPCTSTR(bstrbrowser), WS_CHILD¦WS_VISIBLE¦WS_HSCROLL¦WS_VSCROLL );//create a browser control
HRESULT hrbrowser;
hrbrowser = content_wnd.QueryControl( IID_IWebBrowser2, reinterpret_cast<void**>(&m_spBrowser) );
}
Muf 2002-03-28
  • 打赏
  • 举报
回复
好吧,举个例子吧。
如,要在ATL中使用WEB浏览器控件如下:

在需要控件的文件头部加入:
#import "d:/winnt/system32/shdocvw.dll"

然后编译,此时Debug或Release目录下就会生成shdocvw.tlh和shdocvw.tli文件。

现在你就可以用该控件的主接口来创建该控件,如:
SHDocVw::IWebBrowser2Ptr __MyWebBrowser2Ptr("Shell.Explorer.2");
好了,现在可以用__MyWebBrowser2Ptr来使用IWebBrowser2的属性和方法了。

-------------------------
实际上,很多书和MSDN帮助上都有说明,还是多看看吧。
上面只是可以对属性和方法进行调用,而事件还没加入,比较麻烦,下次再说吧。
Knight_T 2002-03-28
  • 打赏
  • 举报
回复
不用,你那个空间有没有能够在对话框上放置?
右击它,插入你要想使用的控件即可;
注意,mfc环境下;
:)

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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