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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
5 v" U( U4 f1 C7 h- p% l
& B. y4 z" E# K    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); ( J8 Z8 t+ E" K) y% B. C, b' O
& R4 `. d; I+ S0 A. @& ?
2.实现Ctrl+V:
9 T7 X) E  w! g7 b5 u) Z3 Z3 k% ?4 d2 C# s" l8 H
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
. F# C, g. X  S$ s# y; M* E$ ]# Z5 r' I1 t( ~" K9 X( F
3.实现查找:. O4 B4 ?' @9 [# W
( y6 V# G/ v! e* V: ~# u
MSHTML::IHTMLDocument2Ptr pdoc;- E2 q7 L6 f5 t3 o0 v( g. {" }" c
_variant_t varinput,varoutput;
) P* R$ ]+ Z- d* F( g) T( Q$ HIOleCommandTarget *pCmd;  h. C+ V+ C4 H: D5 m( O
HRESULT hr;( m0 J  i% [% n
pdoc=GetHtmlDocument();
& x6 x  U! ?4 Y5 X$ D! U7 A; dhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
% a* c2 S% p- [0 l6 u; rif(SUCCEEDED(hr))
7 X! I. v. \0 P) v2 S$ y: Y0 w) v{
8 o- O4 k4 v3 P0 @  P; Evarinput=_T("");
  W" d1 k- U" y! G! d& E: nhr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);3 \6 y5 e' t3 F9 Y+ l
}% }$ B# F# \' A
4 @( _! h. S8 i. y( c
4.实现显示源程序:
9 G# K6 ~! \. a4 p2 W8 n3 c) j' u/ I4 w1 s
MSHTML::IHTMLDocument2Ptr pdoc;, X/ {: u5 _5 p9 z( u" S8 b
_variant_t varinput,varoutput;
1 G! u" y! R. M3 |+ K9 j: {) TIOleCommandTarget *pCmd;" I' L8 I* O% R! _
HRESULT hr;* W4 O; P5 |+ U- o' h
pdoc=GetHtmlDocument();, Q2 X# f  b" H* Z$ O% Z. x
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);# c; e8 _" N0 W
if(SUCCEEDED(hr))7 x- D* y0 B7 O" Y1 Q
{8 J! f" P/ {3 l3 E' L
varinput=_T("");- G* w/ k' @& {( I! p" K, Q
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);+ Z3 S6 s, _2 u
}$ P: D' p( Y6 V2 b
+ g' V7 C- x. W* A" v+ X
5.实现显示Internet选项:
2 R+ E% W5 I' M+ M/ n, z1 a1 m, u5 y4 z# U. m
MSHTML::IHTMLDocument2Ptr pdoc;
& Y0 d, v2 T  f( l% e_variant_t varinput,varoutput;" x7 t4 z) s4 V5 T# ^" J
IOleCommandTarget *pCmd;: V7 `8 K, S  d1 X" ~9 `% \7 H: E
HRESULT hr;' N# L, x: g2 _8 G
pdoc=GetHtmlDocument();
4 |1 L7 X  V' Y: lhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);$ }8 C* b9 w. T6 i- P5 p7 B
if(SUCCEEDED(hr))
' m/ ^; G$ s, f6 x{2 j; P. r) B( H
varinput=_T("");' \5 e# I7 c8 p) H. ^
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
  w/ g. H3 t* q, v9 S: b% Z1 K}7 j2 E# }$ \8 m9 z9 \2 G
! M$ y( R2 ^4 c3 J3 {: U/ p
6.下载事件说明:0 I; w9 \9 v3 B* Z. [
( L1 v* t+ p& o7 ?  P7 l
OnDownloadBegin <--开始下载+ ]4 J9 V  Z( q8 A0 y- Q! |7 P8 s9 r
OnDownloadComplete <--下载结束
% M2 O1 `3 u" ?) Z) a1 _OnDocumentComplete <--页面下载完毕
9 A2 W& Q! y  V; Q, v7 Q+ e0 a7 j6 {% k5 ^1 F7 @  B0 n8 O
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
( ]- c8 a1 i; x# H$ ]. Q4 g# ]+ r, i9 n5 q
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.& E$ E; P; L: q6 ^5 F. Y& i% z* x
) R4 y1 x* `( S& |! j) M4 G8 h2 O
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?, i5 w- g; }6 i% @$ d% r
- y6 L2 i- e  u, V6 f  D
7.点击链接产生的事件:
, M% K# _6 B6 L' i- W+ D5 J
$ ]0 m9 s  S8 P& N% W% f0 p+ cOnBeforeNavigate2 <--开始链接时会触发此事件1 x" O1 y7 I  {2 F- t) u
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)0 U4 K- @6 D  E: p
( q3 v. f" Z2 _1 u
6 T( P, i9 v; V1 i9 m
8.包括相关文件:
' m2 ]( i: r, g7 N+ M' I! z
4 W# Q. Q% m& B; t+ u2 O% b#include <mshtmhst.h>
1 }2 V" x& G' G' V; Q#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
; M: E  C( P  ^( g% |#import <mshtml.tlb>
2 O) i% o2 _3 K. f$ r+ b+ `! L
" d; O: L$ t) s6 w% g! H请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!. \6 s% I, D: T, `; k5 q! Q
4 A1 T6 P( U+ _
先告一个段落,下次再来。) ]  I) }' P# b+ w

+ `) F- `% D9 F4 ]- U4 O黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-8-9 06:22 , Processed in 0.034715 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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