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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:# O4 s) m' m4 f8 N' C  p
# \9 \2 M: M* M, Q- F
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); , @1 ^+ a' P1 H8 F. ^+ c9 K
+ b7 `( E- q7 c8 a
2.实现Ctrl+V:
, t$ b, ]6 @3 Y0 K% a0 Z2 z' y
" Y) j+ s* R  i( P, b$ k4 q* d8 h. {    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
) v+ k/ x+ h/ p2 I* a# R
6 w  l7 x2 p+ J8 h' a! Z3 B3.实现查找:$ x- |  D. N* Z& ]; R, H: _+ Q  \

& x+ I! x) v3 z1 {- {MSHTML::IHTMLDocument2Ptr pdoc;
, g3 h; ~: r* I_variant_t varinput,varoutput;
$ b8 T4 X5 v2 g- x' W  D6 FIOleCommandTarget *pCmd;' u" k6 }9 i5 c7 K( u
HRESULT hr;5 r* J% J! f, ]/ H" ^
pdoc=GetHtmlDocument();( J0 t7 B2 e& R4 D: i9 j6 A0 w' f
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);9 p+ ?  ^8 k- T
if(SUCCEEDED(hr))
: b3 P$ Q% o. p' D+ }2 j3 p{
1 L+ z2 I5 x# {: \varinput=_T("");! Y/ d5 g* d0 B
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);' ?" C; P: T& u4 H9 |8 z
}
8 z' Z3 R3 v" C3 Z) N8 v
6 {: z( ^" g' O4 T! j8 X4.实现显示源程序:
4 M: t1 z  b# e6 d' T  W
! {  @- }% {' j: c) ~MSHTML::IHTMLDocument2Ptr pdoc;
, v3 b- F9 B9 O" {8 V_variant_t varinput,varoutput;  B1 p: V9 {- m( |) F& z7 n1 m# c% ?
IOleCommandTarget *pCmd;
; q' L) Q7 R5 p" NHRESULT hr;1 g: K/ v" R" k* {
pdoc=GetHtmlDocument();
, C8 z# o( G" [+ z7 k' k0 \hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);- ?- N; b. C& {% H2 l
if(SUCCEEDED(hr))
4 _3 p& @8 i+ h  Q{
3 S0 [- B* I  F# Ivarinput=_T("");
" O9 L1 Y! r4 P, _  ?% ?hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);3 R- B9 w! E2 Z% C
}
* c7 @. y* b- Q1 d" q0 t
8 r1 _- u7 {7 u  ]: O& i5.实现显示Internet选项:
7 n" u# N1 j9 @. P, _1 Z. F( v
  W3 B' }' T5 E# v  M( x% Y# X, LMSHTML::IHTMLDocument2Ptr pdoc;& r# I( L6 w/ i/ d# j  O
_variant_t varinput,varoutput;
: m- r  h: C9 q! b) C1 iIOleCommandTarget *pCmd;
% }5 S" t/ y6 n2 eHRESULT hr;
( w* \7 ~5 A/ B. f) T6 Zpdoc=GetHtmlDocument();
8 W7 c2 e: }2 }6 d& R0 J# U5 Fhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);' \9 u" }2 g+ i% v) f$ v
if(SUCCEEDED(hr)). F! {" L0 }5 r! X* B* V+ N. k
{2 ?9 B+ \& a: a1 o2 B
varinput=_T("");" k  t+ F9 Z/ [/ R
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);! F2 f" H* S- O; n7 o8 {/ J
}
& w1 c0 I9 a% o. L1 G- P8 x' M; D8 W* m
6.下载事件说明:) _" q) f7 `/ j9 `% f

0 L, j+ e1 Q! ?8 fOnDownloadBegin <--开始下载! z( v( X2 K9 m  W0 }$ i+ W
OnDownloadComplete <--下载结束
$ [& Z- P* {8 F/ VOnDocumentComplete <--页面下载完毕0 l/ n1 y, ?+ F- `

# t" \) M: S9 }9 g& X5 S# }; M8 \对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.- R1 k5 m+ \% s6 P7 @
7 W/ b; z0 _- }+ X0 O! |! s% Z
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
" i" S% j' _$ N* L3 s0 U4 w$ A4 G" E4 S  l! P' V! K5 _- F$ ^
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
3 P* h# H! Y5 f: ]% }/ a. F, V& u: L9 z
7.点击链接产生的事件:9 p7 D& J* F2 K+ V
3 h* l' `7 t6 O& Y" t
OnBeforeNavigate2 <--开始链接时会触发此事件
, h( H: T/ }* ~' t/ H. O  ?OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件). P( K" \5 ^# R
) n8 i& ^9 F) K

+ e: o+ C4 c9 \9 B8.包括相关文件:* b! p0 z1 a) g7 F  I

! J) I; ~9 O: _* I#include <mshtmhst.h>
# i" d% H6 m8 B2 r: o* J#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
. E+ l+ x; r2 X. p/ ?4 s; r  D8 [8 {#import <mshtml.tlb>9 P& t% x0 d$ b- e. L0 H' T+ g3 ]9 i
" d! P: w; q& e4 O
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
9 @* j, }4 O. l' i9 V0 l# W( T6 p$ G. s8 `" k4 p9 N' }* j* k. e3 ^5 M
先告一个段落,下次再来。8 e) A( q4 C9 [! K8 u: i! r

4 v* }9 E, n5 H黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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