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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:) v  c7 n; o4 G6 F- R

6 @  x) N5 l# ^    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); $ J% [) P  Q* a# B8 O( a& P. [% e
/ G( B- B4 S4 m/ A% G
2.实现Ctrl+V:4 B3 ~: _! g1 S  r

7 B: c( \" |1 n) w, l$ ^% Z    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
% X7 N" s3 o1 w  R* \: E
+ X) \* ?7 \! |( C6 l4 Z. w0 Q# J3.实现查找:4 M' A! t# ?/ j. P# y6 b' p. @$ n
. s) B/ t7 Q- V% b' w
MSHTML::IHTMLDocument2Ptr pdoc;
) c. n# y, @5 J6 M# F2 _" x6 c  A' L_variant_t varinput,varoutput;
* m& i0 i3 t! j! Y4 KIOleCommandTarget *pCmd;5 E6 }- q6 R% P& h2 W
HRESULT hr;- ^$ @+ Z, q+ a/ A% r) v
pdoc=GetHtmlDocument();5 G0 v2 E* G: X* a5 s) o8 v- Z
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);2 ?) N3 g, `$ T% y8 q
if(SUCCEEDED(hr))
$ g/ z$ P5 a& d+ ]{
( p+ t0 A4 [, G7 f* ?1 ovarinput=_T("");% T; i1 h) Q/ [. d! G- p( [
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
* K$ t, d" H. t; X& p}( k4 O% v% g- a

) x# W: a# E1 r+ {- ^" k$ n# Z4.实现显示源程序:
2 V- M6 X. x2 v) e" D* R: I9 d& z# l0 `4 `- i; U0 r* K
MSHTML::IHTMLDocument2Ptr pdoc;
' r# [. ^# ^. i( r, a, a0 h, d/ t_variant_t varinput,varoutput;$ C3 a% |4 B6 U3 c1 \
IOleCommandTarget *pCmd;
  F! v5 [. B! V0 y9 }HRESULT hr;
6 b, h; I: J; S" ~1 wpdoc=GetHtmlDocument();
8 a; L5 |6 n) g9 W1 C; t( E* Khr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
  Y- |) V3 S  }7 q. a  k: ~if(SUCCEEDED(hr))
! ~! l) ~  ?1 A% ]{
3 Z# y0 a  |3 L, S7 c$ ~varinput=_T("");
, G" h3 H' C1 }6 b! Qhr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
# Y4 y7 R" {, p( G/ b}# t6 A- c  r; B) v0 Z8 i9 |0 t

$ H9 d1 a% J8 c$ W) R5.实现显示Internet选项:% v1 `1 ]  T' ^; }' ?! @1 d: u
8 B# D& z: \! G9 X* n" m) A
MSHTML::IHTMLDocument2Ptr pdoc;
) l0 P8 v" E* X! o7 r. f, x% a; G_variant_t varinput,varoutput;" b0 r) @! }' }3 S9 ]+ T* ~$ c/ V
IOleCommandTarget *pCmd;
7 m2 g7 j1 }$ N( g  Q3 P% A# qHRESULT hr;
+ J7 b# }# W8 i& ^+ [* s( Z* Qpdoc=GetHtmlDocument();
; k7 T( H5 a+ [( ^hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);3 Z# r7 @8 k! V2 G4 k! \5 o
if(SUCCEEDED(hr)), h3 T# B8 ~( h  r- S- i. d5 _  E
{
- L; r8 ?6 L5 {+ I: N! t- Avarinput=_T("");
9 |! Q5 |& |9 g6 |+ Q$ m! S9 z* thr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
. g! \5 f8 \- Z( U  }1 O' p& w}
  t; ~$ z0 U2 t$ }4 |/ U2 d8 r0 `" o& |! V, S
6.下载事件说明:
2 Z# f% p. X4 g) V) S8 ]: o6 L* r: F# l2 A
OnDownloadBegin <--开始下载3 g/ k9 K% {. h# n2 o+ M; A! o
OnDownloadComplete <--下载结束9 c, s6 ~* _6 [, C1 e; K& {- v; A
OnDocumentComplete <--页面下载完毕6 m- R' X) ~5 k6 |- g4 x7 t

" d" R# j& B2 H7 y: K, x& t对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.# C% ~% h8 ~- D% o: x* O2 a' c4 K
6 r. ^2 r! `& _; E
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
/ O/ N1 y) D% b( ]" E0 }  ?4 ]
" Y6 G4 m; v4 R0 A: r4 Y那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?% A2 n7 Y1 u5 Q9 k2 S8 s- F2 n
5 M2 h9 t' \: R& ^5 m! N
7.点击链接产生的事件:
( g: U& q2 _4 c1 o
6 C1 O, o& n) f9 O9 G; O% |9 U' MOnBeforeNavigate2 <--开始链接时会触发此事件
& s- ^1 U1 e  z& p0 O2 NOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
( o7 ^8 O  C+ J& B0 p5 e8 T# N$ @2 z2 z; ?# l- ~( E

0 U! S  f# E) T. J: v# \8.包括相关文件:" `, U+ q+ P5 G7 {8 F& m
5 s4 x' I, W7 P3 J
#include <mshtmhst.h>; v) N8 Q' w8 P. Y6 Y7 w3 L' \
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
! u% p. v; r$ T* h#import <mshtml.tlb>
- b/ j1 I  i( Z( Y: z' o0 Q. M4 u" }
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
0 M! ~8 |8 i7 f7 R! L" h2 s: Z4 C8 P6 z. y3 F% y8 u
先告一个段落,下次再来。, H& }, t4 S" C8 b' u% ?3 W

' Q  u, s8 A7 M黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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