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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:' T: s) E; x; Y* K( J$ r
8 d" y! j" [; y8 B
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);   k6 h* F+ z9 l
7 Z7 G; E  A, A9 r+ C0 Z: Y8 F; M
2.实现Ctrl+V:% D! k+ E2 K  u" j- Q6 |

# J; {9 w1 r, |* i    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); & ?" C) N# e" C% E
( a8 v. n5 z" s# \! d# g
3.实现查找:" e# t& R9 i' g# T

7 c& y2 E1 G- E6 ^. @- zMSHTML::IHTMLDocument2Ptr pdoc;- M) `: U' H- v4 ^' E' H
_variant_t varinput,varoutput;5 w6 t! k# T! O$ Y8 n9 b* a
IOleCommandTarget *pCmd;
1 T, X* p: V, M$ KHRESULT hr;
. ~# M$ v3 }4 z% H5 ^pdoc=GetHtmlDocument();
* n# A% ]' ~( M' y# vhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);# j4 ?+ J" P1 T' f, P, y0 z
if(SUCCEEDED(hr))# x, F- |1 i; w2 O. C: Z. g7 P5 k
{7 Z+ K( Z) Q7 Y& f2 }  S  c
varinput=_T("");
; B1 z+ t( _6 j5 n% N) l7 `hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);$ n  W: c) L0 i, R
}
, N' M$ ?, [" |7 E' j* o( h# a  Y) R# N! C- v
4.实现显示源程序:
/ J8 @! v: r3 I. R/ Q% ~/ d+ Q4 r9 y; x! U  E
MSHTML::IHTMLDocument2Ptr pdoc;- ]* X3 I# H7 w; Y
_variant_t varinput,varoutput;
1 \2 J- S  a; h* C; a* UIOleCommandTarget *pCmd;
0 v1 d! Q, ~" _2 G& l  ]" Y+ uHRESULT hr;
, t% E/ i0 P$ ?+ @6 vpdoc=GetHtmlDocument();+ W; y% Y% [8 U2 Z  r' E% q1 d
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
! H2 n6 `- h, M) ^if(SUCCEEDED(hr))# a2 L7 t3 l5 P9 F/ ^0 w" [1 J
{' f) i1 |+ e, p  Q5 i8 P
varinput=_T("");
* L; o% X- t2 Z8 u  `' Jhr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
, v' b) ]( U& ^5 h- o" L; V( _* _}6 m6 w0 e) ?7 a$ @6 M
0 T9 w8 f' {5 u% L& ~1 r3 M
5.实现显示Internet选项:
' ?) }9 q7 t- @7 `. K# x2 [1 B
# Y2 y) r) _( e( f9 Y, V; I& XMSHTML::IHTMLDocument2Ptr pdoc;- q! j* k( \  g, i1 c2 y# \! `1 O
_variant_t varinput,varoutput;
! L4 a/ P6 c- [' N& w( LIOleCommandTarget *pCmd;
$ F  Z1 x! O7 }6 [HRESULT hr;. A5 g7 E, }: C: J# C' O
pdoc=GetHtmlDocument();/ y5 R; X0 H" V- U9 b; B2 p( I
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
: p; h0 ^8 j: Cif(SUCCEEDED(hr))" }$ n9 H' c( n" L
{
' i1 Z1 e+ X  J. y9 t# rvarinput=_T("");
  h. p, w; _* ]; I. Q3 yhr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
& E/ I. g7 L0 ?/ T$ \- ^; x4 p}
8 q' b: H  N1 Z' b, R% A+ |5 x% J+ c( m: }, o
6.下载事件说明:9 Q! U* _, ]3 _
8 }# Q8 x& u8 ?) U
OnDownloadBegin <--开始下载* D0 T- M1 B% f9 u- W
OnDownloadComplete <--下载结束
7 L* I8 c2 `  n; X; o7 G  TOnDocumentComplete <--页面下载完毕5 k6 Q: v7 `; A' `) y
* n" o* c  b" |& E
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
- J6 U" W. w% b+ B" s+ J; _) Z) S. z$ D& o* V
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.: ^7 q6 J4 u" e! D

. O2 L# _! {2 s' `* U% F那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?$ j7 ?; I5 v8 F; I; d4 `
# F$ X& E$ D" {/ @5 ~% p# W
7.点击链接产生的事件:3 J  x+ C9 B8 |$ z( T+ L- D$ o- T! b

6 M6 ]( i: u6 x+ Z+ |OnBeforeNavigate2 <--开始链接时会触发此事件6 ]  f  u* H0 E# q; J
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
& k" ]( ^6 f" p4 y& S) ^
$ ~$ S' H. }3 W( x! I4 \/ U4 s0 Q1 ]# V" m! w* l
8.包括相关文件:
0 ]* `* P* T" P9 |. b
2 i2 w0 R  r, I4 k6 p#include <mshtmhst.h>
6 }5 U( a) ?( W5 p) K4 s#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!% [+ {9 H, M8 j, `
#import <mshtml.tlb>) O! x0 f) Y$ N+ T& N
6 m9 @$ k: H9 H. @- ?. d; u
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
- t) X% G5 q1 d& E# m8 {2 a; w1 s; F. y4 y+ \+ i
先告一个段落,下次再来。$ \4 N, l9 D( P+ ^

# S8 u! [/ M9 W1 Y/ O0 J黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-10-2 00:12 , Processed in 0.016326 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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