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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
) x9 F- I$ L- T7 ^% ?/ O: Y1 m6 x4 w7 ]" ^: T
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 6 D1 K( ~3 W. k$ A6 @

( j. b# u7 }) j: G6 A, B6 A2 L( A  m2.实现Ctrl+V:
* D. ~* H4 q5 G3 d5 ~: g! F7 m$ n. T& [( G+ s& Z2 t
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
! X5 o$ O  r2 z/ d. u9 O/ r4 |+ i4 F
3.实现查找:
( r0 `1 o; D/ P7 I- q' J, j" a% x/ d5 w" m; F: h; i' c/ F
MSHTML::IHTMLDocument2Ptr pdoc;" ^. E: C/ n. d9 S' j8 N
_variant_t varinput,varoutput;2 Z4 K9 L/ b; |+ N# Q. z# b
IOleCommandTarget *pCmd;$ |/ F( z' {+ b, O4 m* @2 C
HRESULT hr;
! d4 F- T' j- F5 Z5 Fpdoc=GetHtmlDocument();; S; l5 o6 K# |- g
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);8 ~& O( R% \- S% s
if(SUCCEEDED(hr)). ~2 R6 t5 J6 R1 g' |
{
$ a+ q( `7 q+ mvarinput=_T("");
! O* h( W# T4 c5 i3 r; c: l( lhr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);7 m8 d% y# f6 c* c
}
0 l0 I4 H' q4 U7 |5 y1 r; p4 c9 g
/ j. v* ^* r: O2 v9 [; ^4.实现显示源程序:
5 J- d  t( `" E+ ?0 }0 Z! `; I  X2 }! o$ E
MSHTML::IHTMLDocument2Ptr pdoc;, |, r8 i. |, b- r9 f
_variant_t varinput,varoutput;
2 W8 @8 s5 G  f7 |" w( U4 G1 s' N+ Q: ZIOleCommandTarget *pCmd;8 `, R$ C- l3 C# e% R, D4 [! I2 e
HRESULT hr;
* W+ J: S) [4 g) |$ }" U3 Ypdoc=GetHtmlDocument();* @7 h6 y9 F) |2 K' \( i- H' ^  V
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);- R: D8 F. s+ K! ^  \
if(SUCCEEDED(hr)): G8 ^+ ]. O' F
{
, n6 Q) e4 U* {6 |/ Y# xvarinput=_T("");/ `0 V( S7 \$ R+ c5 I
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
* O0 x7 J8 w5 K% [+ a: f}5 [- O0 S# o1 u' b
6 A( }0 z. X7 H  A8 h. @# p# Y
5.实现显示Internet选项:
8 h" z6 O1 X" H6 G
, @8 F) N+ }$ u4 ^6 J* J; rMSHTML::IHTMLDocument2Ptr pdoc;0 U+ C# n4 C( ], o( L& U6 y
_variant_t varinput,varoutput;( R) D- E7 k7 u+ T  C% J# A
IOleCommandTarget *pCmd;
- D' X9 e2 f  sHRESULT hr;- s" h0 _! _0 u: E7 E1 u
pdoc=GetHtmlDocument();1 m* G# b5 G. G! e
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
4 x0 c) J! Z" Mif(SUCCEEDED(hr))
+ h" p9 i: X" V* q  K{
  @' J3 H/ \$ d' Vvarinput=_T("");/ |7 z, s8 A+ q& y' s: E
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);; n2 Z  k9 w" v2 s, A
}
5 U3 K5 U  ^2 X. {5 H8 z8 i, I1 t8 T: E1 {2 r' ^8 t
6.下载事件说明:
0 ^! {( @; M: D
2 k% A# ~9 E7 v+ h: C9 U% p7 OOnDownloadBegin <--开始下载
4 L! d/ [9 U' |' XOnDownloadComplete <--下载结束
8 ], F, J: {' f% @OnDocumentComplete <--页面下载完毕
- d/ F1 B& C2 O! [) I7 }( Y6 H$ O9 u% Z
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.1 r8 x! _, h4 c$ c& I
0 p: b3 D4 b* `9 u3 `& A  v' I
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.: h5 b( Y# G3 d# K0 E, z
9 R2 s  l% ~1 ?$ t
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?1 R! Q- @6 Y$ k2 P4 u

9 O1 ~; c! X2 E2 a  v7.点击链接产生的事件:5 h- \5 M# |7 ?9 M& k1 \  ?) A3 o' Q6 s

: m+ H7 s+ n+ A+ Z3 MOnBeforeNavigate2 <--开始链接时会触发此事件
! B: g9 k5 N% {' bOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)5 m, q8 Q2 n* B" G

  L- ~, L  S* G# x/ a% w8 i3 b/ T3 T0 P3 G8 W* I$ |
8.包括相关文件:
7 a; c, v4 U+ K' ^# J" N3 |: `. k0 H3 c; j: g7 N
#include <mshtmhst.h>
4 g: @& o1 w  D9 R#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
( I# u5 d  n' ~" S- {6 r* A#import <mshtml.tlb>! @# i  l5 N4 W# B

- B& i5 y  t$ c* ]请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
" f' J- `9 G2 R9 ]+ l" I* ?2 N! k7 ^1 C) o# E
先告一个段落,下次再来。
4 t/ m: ~% [( Z6 Z
* @* a; d  v, Y: p: ~' m$ O黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-20 14:26 , Processed in 0.038449 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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