IE编程技巧大全
黄森堂著
1.实现Ctrl+C:
ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
2.实现Ctrl+V:
ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
3.实现查找:
MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); }
4.实现显示源程序:
MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); }
5.实现显示Internet选项:
MSHTML::IHTMLDocument2Ptr pdoc; _variant_t varinput,varoutput; IOleCommandTarget *pCmd; HRESULT hr; pdoc=GetHtmlDocument(); hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd); if(SUCCEEDED(hr)) { varinput=_T(""); hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput); }
6.下载事件说明:
OnDownloadBegin <--开始下载 OnDownloadComplete <--下载结束 OnDocumentComplete <--页面下载完毕
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
7.点击链接产生的事件:
OnBeforeNavigate2 <--开始链接时会触发此事件 OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
8.包括相关文件:
#include <mshtmhst.h> #include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看! #import <mshtml.tlb>
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
先告一个段落,下次再来。
感谢以下网友:edyang

|