找回密码
 注册
查看: 4179|回复: 0

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:1 ]0 e% c2 x- n: d. [& A

7 B2 H3 C  B7 ]9 y% |% r" X; |1 l    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
6 k' Z& Y' Q; A3 p3 ^$ Y2 _7 u
6 z" [! A* U% W! l4 J- W2.实现Ctrl+V:5 l/ R9 b( X+ t$ O7 q: Q
: d3 h! Y) N" Z3 l" E/ ]
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
4 F1 c  P* y! X) A
  r0 O6 m6 z4 U3 d3 G4 u5 B& Q+ v3.实现查找:
# D: E0 h- N+ d% G0 n) B& ?& v4 }
5 Y6 o  k1 c" B4 p8 B: OMSHTML::IHTMLDocument2Ptr pdoc;
1 W3 \. o# Z* l_variant_t varinput,varoutput;& A7 {4 _$ {  d' M4 W- ]
IOleCommandTarget *pCmd;% g8 x4 L# n- B+ U# {/ x% z, K
HRESULT hr;% [( ~1 O' R; C% H( n
pdoc=GetHtmlDocument();
, O1 t& n, m# j% W  C1 Mhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
' i7 P% p/ s3 n& g" `# \/ v+ \if(SUCCEEDED(hr)), l0 O1 g0 m1 `; y
{1 [. F$ U1 k* a& s0 m! m( w! R. ]
varinput=_T("");
: y/ B# B" @/ {3 W; ^hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
- B$ G) M9 G  s" v}
/ r* i9 |4 F- v% o8 |2 A+ Q' w# C8 m' p
4.实现显示源程序:
4 ~$ M& C1 E. D( s8 i, o" o/ o1 q. I3 e4 F8 A
MSHTML::IHTMLDocument2Ptr pdoc;1 v- g* Y4 a+ K( F) l2 ~- R
_variant_t varinput,varoutput;
- L9 I5 r0 ?/ @8 ~9 e) d0 F# jIOleCommandTarget *pCmd;
9 o. P- B; b5 _: KHRESULT hr;6 D; m7 V+ l# `; r5 H% K
pdoc=GetHtmlDocument();
, |0 h, j/ C9 phr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
' Y# b; l& p, L1 B; r" Iif(SUCCEEDED(hr))( H7 i, \. x' S
{
. ?& M3 H  d& U( xvarinput=_T("");# S' W+ e! c4 y1 a0 D. S
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);# A( @* D/ Q: F8 I: X
}
5 ^0 D9 Q+ X1 L) k/ s& Z9 y! l
# X/ c7 |) p4 T2 K6 w' @3 [& I( Z5.实现显示Internet选项:
: q* g. O- k/ j2 y; U7 d( d, K5 L
& f, y' B; m4 S" AMSHTML::IHTMLDocument2Ptr pdoc;0 h6 [; }- a% L* I
_variant_t varinput,varoutput;
6 c, j$ ]/ H  H' p2 O/ QIOleCommandTarget *pCmd;5 `8 @/ A/ n! r" b( Z
HRESULT hr;  ~6 Y& T+ c6 e7 \/ o7 ~+ h$ M
pdoc=GetHtmlDocument();
/ ]9 }' T0 ^* Q( f4 N1 i8 hhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);" O) A& W' j& Z  m- e+ Y$ V) t
if(SUCCEEDED(hr))
" E. x8 |8 a+ d- A1 Z{
% [7 ?2 d# ~( j! s& W/ Cvarinput=_T("");: R: ]+ G* e& b0 o. t+ V1 E1 _' f
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
3 N+ I$ s& B1 y  f1 A+ D$ |7 \$ _0 H}
1 @7 P* \/ D! X$ h7 V8 Q6 X
! g" j( u6 c/ z6 a* [8 U6.下载事件说明:
' y( I0 v- {( J5 Y" v* J( S: y- q  i/ |/ \5 e
OnDownloadBegin <--开始下载8 p; p0 k, Y$ o7 P+ g# t0 p: k
OnDownloadComplete <--下载结束
( O6 {. n8 V* d3 c# v2 sOnDocumentComplete <--页面下载完毕
: Q8 C- ~/ u. b" A& ~1 k- S3 m- E0 Q: a& t+ B# u2 A
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
6 K: [5 M: q# A; r% q" M* H
# B0 `7 D' M* z  P( ]* H9 F$ f对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.& N- X1 j! v2 Z! J2 u( j/ |
" T; I4 [$ j: d
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?& [  r7 n8 A3 F
9 u$ o  u3 y' u
7.点击链接产生的事件:( k/ Q$ R1 o; B. d

( ?# R  d( N6 k$ _$ k# R! UOnBeforeNavigate2 <--开始链接时会触发此事件* @' k* ]9 ]! e
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)0 E* k8 L' l7 R/ _/ d( a

$ f) k$ c' [8 ]1 m9 Q. H
7 n& c5 c( H: q5 e8.包括相关文件:& h: c1 d$ Z  s6 l2 B" y

$ ^4 G( D' H* z#include <mshtmhst.h>! b+ q8 Y# X3 z  E  u
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
( d4 }6 _! [/ R6 `#import <mshtml.tlb>
% D3 i$ e! u7 l* {. }. t. I( O$ A1 p9 u, o8 \' k* M' |4 _
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
% C+ a! R. [' h) M; w
9 T9 y, G9 R  t: P先告一个段落,下次再来。
" W$ C/ d# u' Y- a2 X' o
% r4 B1 [8 e3 L9 Q# a# v9 G. t黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2026-10-2 10:12 , Processed in 0.017463 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表