找回密码
 注册
查看: 4175|回复: 0

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:0 P* D; o+ H0 O
* L* k& ?/ e6 R1 n, @  I/ t
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
/ n, |& Q% O  ]8 J6 M( M- N
& [4 b' g$ w! I2.实现Ctrl+V:
. y0 G" Z% Y7 k- \* q* I1 y3 Y2 Y0 ]# c7 E* S( I; e1 v- Z
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); / d3 _, \+ J7 I( y: j+ K

8 D; y& ~! Q1 r8 l- s6 g8 V! _. r3.实现查找:8 u8 u9 k+ b# a/ X) p0 l3 E% B

+ f" d3 f* F. k7 LMSHTML::IHTMLDocument2Ptr pdoc;
! p0 S: G5 u" C8 _4 \_variant_t varinput,varoutput;! Y8 ?. ?9 q( _- C: R7 e" m$ x) {
IOleCommandTarget *pCmd;
9 }7 k/ s2 u% _9 W* a  l8 d9 hHRESULT hr;
; N. I2 Z7 j" _5 o8 Y% ]. Ppdoc=GetHtmlDocument();/ S+ x; Y/ [3 H9 F8 u
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
- x/ v" [% B2 p* B5 j' T! nif(SUCCEEDED(hr))
  ?" X& N2 e: }3 A5 S' R* f{" r2 C( }- _# G; y
varinput=_T("");
# T$ U; A- m/ q; d+ d; bhr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
9 J' o# H) D" N! m* A! M1 N0 h}
7 \) t/ x% {/ j5 [$ Q. a
+ W) h; B- O  F( {, y' j% r4.实现显示源程序:
1 _$ q! l, h! J9 M! p2 ]0 _; O) l7 v7 ?0 M3 y0 ]
MSHTML::IHTMLDocument2Ptr pdoc;
) j! N& v7 t  a/ @4 |: N_variant_t varinput,varoutput;
# i6 B8 s2 b! J" s" BIOleCommandTarget *pCmd;+ e& g+ ~  y3 Z1 G
HRESULT hr;9 @8 q. X* Q" S0 ^- j+ y% w* ~4 c
pdoc=GetHtmlDocument();  U& B1 S  h9 v( E7 F8 t
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);# n) r) V. W- u) t- S- _. s& S" t
if(SUCCEEDED(hr))
$ ^3 q) _- ?3 i{
4 V- b& i! @/ a; ]$ ~% Lvarinput=_T("");
9 ~* I+ d; p) T# T2 zhr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
7 X4 m8 ]& i2 |; ]}
; u: @% ?- M+ P6 k( H+ ^) h  k7 t) s6 b
5.实现显示Internet选项:
/ G* r3 L# f0 P
* t$ t1 a9 |3 u1 k1 tMSHTML::IHTMLDocument2Ptr pdoc;# N9 a: L0 ?- X9 W
_variant_t varinput,varoutput;
6 \4 d6 l! c4 L: WIOleCommandTarget *pCmd;
( t  E7 ~/ o4 O: V7 OHRESULT hr;
4 n& M, n% L2 fpdoc=GetHtmlDocument();
/ p5 A! u5 u. m( C! h8 uhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);. r/ g" h3 w. y# R  Z
if(SUCCEEDED(hr))
; Q3 i% L( \3 c% t{' ]3 x: E3 U  `) Z/ s
varinput=_T("");
  ?) ^: P* [! j; ^hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);$ {. ]: L# k) |+ ^% a) @2 v2 c
}; ~6 [4 G& d( f0 Q$ j

; W8 M5 P9 U" L7 ^% R  \6.下载事件说明:  D9 @% V, b* b
9 n9 n% H! _: ?& i8 Y) f
OnDownloadBegin <--开始下载! y5 f$ K- P7 f6 P. h
OnDownloadComplete <--下载结束
" l& f, I$ D5 f; @9 o- ]8 dOnDocumentComplete <--页面下载完毕$ A9 v& X! H9 ]+ v. F( W5 ]

+ W7 q1 n+ Q* v8 r; ^% m$ k! a0 ~对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.: u5 P$ b* o2 C5 \/ J5 F: O
- d# `3 t6 k/ w( @
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.8 ~# M  I$ B$ h# ?

1 t5 |4 ]7 k3 Q$ J: x  n那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
6 B  q3 ]# n7 V: j  }- N5 N7 L/ ]1 j# Q
7.点击链接产生的事件:4 b- ~" d, [. _  ]  A& M
/ L) Q" \: d) L
OnBeforeNavigate2 <--开始链接时会触发此事件
; F" A/ G! p0 eOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)1 m2 ^) n; c: \; i' G7 F) g

  h) o& j: d) Q/ e$ P/ w* F( Y5 Y' U' F% @" J! {* c7 K3 G
8.包括相关文件:
4 D+ K- {' F/ _  S
) `) a+ e" @% i/ x0 [, ~3 A6 g( K#include <mshtmhst.h>8 Z' O. R- ]6 H+ H
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!- Q- H# r: c8 y, I# L
#import <mshtml.tlb>0 i* C+ h. t' T  {; X( K% b

, _. Y" r4 O. i0 d8 a* E9 T  @, l请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
9 {: ~# d9 Q/ R
; e5 g  B9 l2 X# a- R先告一个段落,下次再来。% r) {& m' F) q* q  g$ X

! I0 C" P% |  Q- {黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-1 20:50 , Processed in 0.016850 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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