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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
) K$ [- x* g" E
! X/ a* k; @' I) c9 v4 F. `    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
+ V& m* ?4 k7 S& V' g7 w" I7 n) z" e( H, `' m; N& A1 v
2.实现Ctrl+V:# E* U. l8 ?2 T) u8 A5 n# N
, P0 F7 |7 c. O; ^# q
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
- u7 `+ \0 F: e3 y7 }# x/ `
- z6 \2 ~' S5 `3.实现查找:
  c9 n) U- \. Y9 P+ O5 T% U0 Y/ K5 d  R
MSHTML::IHTMLDocument2Ptr pdoc;
8 S8 v  `4 c/ E  n: @# x8 ^/ R_variant_t varinput,varoutput;
  X3 ?, S) f0 Q7 u3 w3 gIOleCommandTarget *pCmd;2 q, j8 j, t" m% u5 n' E' r
HRESULT hr;, F5 K9 T" t3 Z6 R' }# \' Z
pdoc=GetHtmlDocument();0 d" W! K3 h; L
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
6 u1 z4 m7 }4 E2 C2 sif(SUCCEEDED(hr))1 v* Q8 Y  ]* Z! ^; v
{
- n5 O, S+ A# {3 a2 qvarinput=_T("");
: ?1 C: f9 B& A8 U4 }7 n6 xhr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);; {/ L: E, q; `. P
}1 I% x/ d3 B( H7 C1 N% Y

2 _: d3 T2 o( r7 F4.实现显示源程序:
9 [$ I. R4 Y9 l/ o, g
$ V4 K  I, l/ d; xMSHTML::IHTMLDocument2Ptr pdoc;
2 ^( b' C2 `0 M3 m2 s_variant_t varinput,varoutput;
( w/ o. O& |! G% r0 v9 d( j: W) MIOleCommandTarget *pCmd;0 v  `3 k% {; }9 b+ A
HRESULT hr;
$ y0 }7 l6 u# p( D7 @. _0 xpdoc=GetHtmlDocument();
) b1 x5 T! d2 r$ ^hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
7 U6 A1 s  h( Qif(SUCCEEDED(hr))4 a6 E+ `" `, t$ q- {; X( u" O
{
. c; d2 B( C) b9 i' Bvarinput=_T("");, Q0 U8 d* c7 ]' L# Z  ~+ e& d
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
- Y$ S" G* |( b6 `}
0 D' A9 B" T- g$ C2 U
' h3 I% R2 N9 H9 v5.实现显示Internet选项:
0 S" q( @# q' C6 @2 T- Y! {& O* h7 H' U& U
& Y$ m3 ^  [8 gMSHTML::IHTMLDocument2Ptr pdoc;
' v7 s* e2 m) T8 s2 _5 D_variant_t varinput,varoutput;
. n$ D, a1 ~7 ]IOleCommandTarget *pCmd;
" i, }- O3 c% h7 x; s6 n; p. eHRESULT hr;
# }( G9 x3 M# e" M# ^pdoc=GetHtmlDocument();( A5 t$ u1 U9 V/ ~
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);' y) g5 |! }7 Q
if(SUCCEEDED(hr))7 l5 c3 k- w4 }
{- [3 J) M8 _* ?! R
varinput=_T("");9 T7 Y  w  l. B3 @
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
: ~0 f7 t& z8 I}6 m8 ~: s$ f% @9 N) [$ L' p

/ b' p( ?( s) ^& u' D6.下载事件说明:
! X* w% r9 J; {) t
0 {+ a9 i9 q3 Z! }$ _; q; cOnDownloadBegin <--开始下载: S% H2 L% r! t, B
OnDownloadComplete <--下载结束
6 P7 U$ r% z2 Y! _% NOnDocumentComplete <--页面下载完毕
; v. Z# ?1 I4 Y( |' j9 i$ ^# E) T) K" b5 e8 m  z$ n) i
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
1 b6 J) @* B' i4 d! S, _$ Z  U3 |9 g4 @4 h+ ?0 D8 W6 h7 G( y, Q
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.+ }; O  F$ D! S3 h% T( L# n" R  a

2 z8 @+ B! n$ b那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
/ o# k0 c4 c0 ~, C+ C
0 ]8 T7 l# r( Z& Q5 o* N% y7.点击链接产生的事件:
5 @2 n# E! U# w1 u3 N6 {" E% {4 ]* A
OnBeforeNavigate2 <--开始链接时会触发此事件
% j. V, a6 n( q3 `. s) I; C$ X8 pOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
* o! S8 @2 o: W+ Q' H+ v- ?
6 X+ s7 Y7 M. T- Y/ z5 _* S9 q0 n0 j4 M1 b
8.包括相关文件:
& Z+ n  E/ c( P" R, l- s/ p
& I4 q3 @% Y, p5 X! T( c( e" ?' I9 e. q#include <mshtmhst.h>
( \: b' s$ D4 T: @#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
8 l6 o+ \4 [* J, y#import <mshtml.tlb>
8 {' k6 v6 J/ b8 F, `; W( o0 n
8 n6 D; b3 D6 i6 }  ?+ P8 U. T; R请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
' Z& j+ |* B# I& n) [" O
; T  s/ o7 i2 z先告一个段落,下次再来。" `/ Q  x' I: L. t3 U6 p/ C7 x

) w" Z9 r0 N# ^* s, V1 [+ H2 M$ P黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-14 02:06 , Processed in 0.021578 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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