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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:3 s; p: |7 K3 c/ g
) O3 n% E; Z$ r; w+ A$ W( l4 r- U
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
4 t) B& h- a' u6 u2 k  N, Q6 y. y; I/ a; P$ v. K
2.实现Ctrl+V:9 C/ U, e" K. k6 C6 k0 g
. `2 }3 @+ C2 C  ^
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); ; c) W+ F' K* U9 }5 X

! R8 b- |+ X- M: R/ B) V3.实现查找:  x" r, b) O# J$ X
% S! s7 d8 ?# c# g+ z7 R! n! `
MSHTML::IHTMLDocument2Ptr pdoc;
+ D6 ?8 w, r8 }" w* \4 y' X2 S4 V_variant_t varinput,varoutput;
3 Q& U$ f" L8 C  YIOleCommandTarget *pCmd;
2 y8 o0 n: f- y: t" }' d. JHRESULT hr;
& J" I' M  V  O& R. `2 u* I2 Vpdoc=GetHtmlDocument();3 e( n- N- `5 w# v; S# i: F
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
) Z& X8 {' `7 y' Aif(SUCCEEDED(hr))! M$ o: P/ B* W; f  n
{
+ P  u! Q2 b; svarinput=_T("");
" b* p! m& H8 k, Mhr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
# r% I  f. S/ c( D  w}+ u3 i9 J6 M7 v) y

5 T+ A" G6 a1 K# q% V5 Z, h4.实现显示源程序:
" @9 t* ~" D+ U- U% b% R  w
+ i  `! @" m8 D* d9 v$ hMSHTML::IHTMLDocument2Ptr pdoc;
: `; Y4 U0 q/ {. ]; y; u_variant_t varinput,varoutput;& H8 ~  ?' F+ \+ F
IOleCommandTarget *pCmd;9 i# _. w4 z: t. m8 Z5 n5 c
HRESULT hr;# P& @9 L) n$ u/ e8 }
pdoc=GetHtmlDocument();
) d+ l% h6 I9 z* ?0 D9 thr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);3 ^/ z" t- Y% x/ |+ n0 R& B
if(SUCCEEDED(hr))
; C# _/ {# u% D; E7 R# h{2 ^" B( v* ~; T/ R8 U
varinput=_T("");! c' r/ ]- }1 I% R
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);8 J+ W" A6 B1 D8 X
}& e5 b) p* P2 k8 S  m9 m
( C9 D: J) c0 O8 z( K$ D7 C" e
5.实现显示Internet选项:
: o: h& @4 h: @: P- q  S. y+ `3 ~9 w- p
MSHTML::IHTMLDocument2Ptr pdoc;, r! L3 t' E) O. {
_variant_t varinput,varoutput;" P3 b- _' |+ t) v
IOleCommandTarget *pCmd;
1 Y% X2 A$ j- T3 K; `. R% lHRESULT hr;4 E, {& C: E" P' i
pdoc=GetHtmlDocument();
' n+ ]: ~+ s  |/ m5 Z- Dhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
4 ]' h2 |6 l3 |/ N! Pif(SUCCEEDED(hr))
! G% k0 `! r, U$ U{
5 C/ S0 G5 _6 Z' Yvarinput=_T("");
* X( h& J& z8 J& N8 mhr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
+ u$ @& ^; c7 ?}) a; V' I' x3 R9 j. T
. U1 F  i( L/ k  [0 _6 b3 I) F: r& M
6.下载事件说明:
0 v! M$ V7 {# ~8 Y% p0 D) T- t- Y* b& @4 L, s9 p) _
OnDownloadBegin <--开始下载) I' o- n* F4 g- \+ S
OnDownloadComplete <--下载结束( v, A8 Q9 |7 i2 Z
OnDocumentComplete <--页面下载完毕
7 T7 ?5 M5 L% k+ }5 V  }5 H1 X  |$ V. o0 v4 e
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.; B! s- t  X1 H. z9 G9 j0 Y2 U6 p* c
  O. A9 c0 n% W% L/ j& f0 B; ~* y8 O
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.1 m  `: d# ]5 ]8 K2 _/ L9 C
. n2 x5 K, z8 X' b! o2 l" _5 v
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?, j8 L3 c6 l+ D& Z
2 w. V1 j* T1 ~# s2 F2 z  P4 }( F4 y, L7 m
7.点击链接产生的事件:
8 ^' _  u  h  t$ |3 Q8 F1 \" `
* i  ]3 f  ?3 B% O7 FOnBeforeNavigate2 <--开始链接时会触发此事件* ~- p+ }2 Y, H$ B
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件): _# d7 q1 }3 ^0 Q( x9 I1 X

% _7 Z! q. S2 k; t4 j1 q6 ]; W% a; }1 f9 c" O
8.包括相关文件:/ V) T9 S, u; Z, D( i3 n
5 A' N5 D0 r  K- W; |' ^7 P
#include <mshtmhst.h>' x2 h, D3 J& U/ P
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
0 x9 |: _# ^/ H+ r8 C) t. G7 S#import <mshtml.tlb>6 q# [# y6 I* l; D! W  U

$ H. T! g& _& a$ S2 s  e1 Z/ D请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
. K0 Y, y: [1 Z3 P4 }) n- J3 v  y# `: H/ \8 P8 b$ q: l: `. w
先告一个段落,下次再来。
# g; a! z; p8 ~* y& L5 Q! c
" o% T! `" L6 K/ D: E' K黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-12-13 10:08 , Processed in 0.016776 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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