找回密码
 注册
搜索
查看: 3818|回复: 0

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:1 s7 A' D& z4 C  f1 @! x
4 D: P6 y' ^4 S# g; A- ?5 I
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 5 w( F* [7 j9 @  {4 D

( X3 A" O/ ?& ^+ p* L3 _7 A2 y7 D2.实现Ctrl+V:. o, Z8 X; p/ @. m

; A( F+ I- `2 i; l- [* Y3 I    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);   b3 m6 }6 F% N& v4 ~
2 @  D& t( z6 v1 S1 q5 h
3.实现查找:, S+ Y, j# N/ v+ f; j) j
+ L: B4 B  d$ [: c& f
MSHTML::IHTMLDocument2Ptr pdoc;' P9 f+ B# u; t$ b( v
_variant_t varinput,varoutput;2 g4 X/ Z, h( b$ I: L
IOleCommandTarget *pCmd;) S( R0 i) Q' A2 i* z
HRESULT hr;
; F- u- h% j$ ]. d6 Y& qpdoc=GetHtmlDocument();4 _0 P% u/ O$ \6 m: n+ W* _
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
/ g" ]9 c( y! J+ n* M: d0 Q0 Yif(SUCCEEDED(hr))7 B7 _% U+ i: c% j
{
* f& a3 U8 {# I, c" b8 evarinput=_T("");
8 d" C. @# r/ g, `hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);6 `, A1 ~. \  ~1 L" e7 z6 b/ T
}9 U9 f- P6 ]0 D
4 x! V3 e5 I, f# ~: B
4.实现显示源程序:9 t. F$ b% X0 {) @* L( \" e7 J- \
/ b% _9 S6 l: ?  w" D1 i1 g" g5 A8 U
MSHTML::IHTMLDocument2Ptr pdoc;
( Y# {7 \* l2 _$ G3 i9 V& P_variant_t varinput,varoutput;% Y2 u, S/ A4 a
IOleCommandTarget *pCmd;
" a# J# O  W% ~* sHRESULT hr;7 s1 G' ^; U: n5 b3 y& j; r5 O
pdoc=GetHtmlDocument();
  W& R1 k4 t1 E' Chr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);9 U4 z  j" \6 b& }7 ~
if(SUCCEEDED(hr))$ H5 @  H( ?( o, U
{+ q! f& G4 E6 m  y1 q3 @3 L" k- K
varinput=_T("");" Y( e( K7 V. \8 D; ?  P7 u( V
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
/ Q/ q' D5 }: B; t. @5 x5 L}" z  E+ `& M/ }4 ~: D
4 t+ l% `  t  w4 P/ f/ X) y
5.实现显示Internet选项:
/ M8 v5 j  x) q! v( n; B2 S
& e% P9 s$ V& O  f* U7 _MSHTML::IHTMLDocument2Ptr pdoc;
  {0 ~4 i6 f! k! l5 ?_variant_t varinput,varoutput;3 y% G6 H  q, h4 d, ^
IOleCommandTarget *pCmd;
- n& M  M6 T  k, g5 Q! y$ k9 wHRESULT hr;
, J$ l! S& z% c. Q% Rpdoc=GetHtmlDocument();2 S: k0 A& Z& g6 o" h
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
; ?% Z# p* c' z1 u0 Kif(SUCCEEDED(hr))
; H4 l* ]# z2 O+ b. o( N; E+ ^{
! _7 K  n! y; P% N' Z2 [varinput=_T("");) T( q) f& S7 n7 \: u
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);: l+ ^& }$ v! v
}
" r  w+ r6 q( ]/ V  a! x9 M2 V9 S6 C( k( i; ?; Y
6.下载事件说明:
9 }' v8 w% h( e! Q1 c# X1 g
5 H8 ?* S6 Q. ]: TOnDownloadBegin <--开始下载* u6 H' X7 P% |
OnDownloadComplete <--下载结束
, c( j5 \; \" R: L( i" [0 {8 KOnDocumentComplete <--页面下载完毕+ h: n: _1 H3 Z
' e/ J( D5 d; }& f) m
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.0 O% ?6 x8 q: E" B
# B) t' c3 J" x) z, }
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.% @& ^2 d) A, S, _
. Q* }1 C" M% @$ _
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?- O1 Y6 B# l6 K7 x7 @1 x* e
+ }) U5 Z; \& s* a) n" Q/ f+ T( P5 d; S
7.点击链接产生的事件:8 B% n! X/ @* p% a9 O( Y& x* m

. [5 G4 l$ E  z2 b1 Q9 E* N$ dOnBeforeNavigate2 <--开始链接时会触发此事件# j% e5 d; e3 i7 E
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)' w+ ~* h9 v/ R' S6 G
4 Q2 M5 R- ], l+ {& {9 L1 e! P) }
9 M' ?/ d$ _# g. f% x3 D: r
8.包括相关文件:
+ [: Y+ c+ P/ V! W6 f0 ?5 Z1 h" d& n& F0 c
#include <mshtmhst.h>, a) C; w3 V: h: ]
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
6 }2 c4 Q5 l$ G8 O: z% o; B9 m#import <mshtml.tlb>
. R7 ~  O4 f' U6 R: o0 w) T4 y+ v* f. G: ~: ]; o
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
# F  ?7 A1 M5 I1 F3 K. v! V" [4 y" K7 y, o. `9 N% w  z. j& I
先告一个段落,下次再来。3 `+ |3 P9 z9 v2 G2 }  i" s

/ b" I/ t; U! ?2 ^2 b2 V黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-9 08:01 , Processed in 0.035741 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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