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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:2 g0 `" Y% N7 A- J3 u- B
  x9 O6 |5 @7 \: I1 D) N
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
0 K- W. l; Q0 o5 b0 H1 {4 O! F7 \7 b3 I$ f" {$ j
2.实现Ctrl+V:& z% U' I2 ?9 d2 X' r

/ B/ n( [+ Z4 _+ Q5 d2 K1 K# E3 Z/ e    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 2 x- g+ h) u( H! o- @/ {% J9 S
3 U7 k0 d5 C  n6 v0 _
3.实现查找:
9 n5 l, `# `9 i( Z$ [, {% j0 \0 V3 r/ j( E! R, _
MSHTML::IHTMLDocument2Ptr pdoc;/ N  J7 A+ g# R  }! A$ k! E
_variant_t varinput,varoutput;
  o" f2 O! F, `8 L/ D% ]IOleCommandTarget *pCmd;* x& u1 E% f' m1 S
HRESULT hr;! P3 e7 Z  K, {1 \
pdoc=GetHtmlDocument();
$ U8 u$ j* j2 F$ i  {- y3 d8 ehr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);* \3 N0 ^2 }+ z1 s3 {+ l
if(SUCCEEDED(hr))0 z" C! r* e' y$ |3 \$ t' p( q
{
3 U* I7 }+ q+ G5 f3 x5 fvarinput=_T("");' a% n/ ^# g: o: n" _
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);* w& f0 I9 m9 x" R9 [# t: H3 O) c
}
2 E; `5 P. U% ]/ ^! s6 x7 y; x# ?* Y3 P% q+ D: D* \$ B4 A, f
4.实现显示源程序:& U8 k8 \, s7 \( p. n, ]
+ p3 _* ]5 Q! K3 D' `
MSHTML::IHTMLDocument2Ptr pdoc;; i) k. j0 P7 x( P; C
_variant_t varinput,varoutput;
3 a/ }2 t8 p9 h6 K: I( Q7 rIOleCommandTarget *pCmd;
7 u- `1 H3 F* c+ y& `- ?HRESULT hr;
/ o; z7 K" i9 {) J! Apdoc=GetHtmlDocument();# z) }9 T8 p6 {# ?9 t5 b/ u
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
& C  P; h2 H, m* ?! ]; B- ?6 Sif(SUCCEEDED(hr))& q+ o8 O( z/ r
{( [+ P2 ]9 T5 P- S4 Z8 i" t
varinput=_T("");
8 ~# q! W/ z; L/ @hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);) I5 J# d  @- x+ s4 x# p4 L$ N" t' D3 `
}5 B! Z. z% _- S3 Z- F! o

& z# {: o" _2 G2 d7 r% R0 L5.实现显示Internet选项:0 l, {% l2 c* M! c

0 T) C( B% a: B! PMSHTML::IHTMLDocument2Ptr pdoc;
8 f# p4 k9 {+ ?9 s6 Q* e" j$ o3 O0 P_variant_t varinput,varoutput;3 O/ W  {2 V6 b4 |6 t) ?% q
IOleCommandTarget *pCmd;
1 `6 s" ~( n3 b! U( X; {" aHRESULT hr;
% ]& X5 q( U0 J5 J& u5 O# S. t* i- B: m+ [pdoc=GetHtmlDocument();1 C$ a4 k" W0 u- G6 l" b: P9 L  k6 p
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
7 b4 C/ [$ I7 O. ^if(SUCCEEDED(hr))
- E8 E: y0 o( l6 v& v{
, s# K2 o* `6 S4 T( r. c) Nvarinput=_T("");
; A. A" ]) z# y" l% b0 ghr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
) d2 G2 u  \* a. a* l- i4 o9 U}
* G) m: [% ]; e: l! k; f1 n6 S' h1 z! e3 E
6.下载事件说明:# p: D+ z. f  E* u7 Y  h
1 m  p! V1 @' L/ Y. B
OnDownloadBegin <--开始下载- q/ ?, D( ^! G
OnDownloadComplete <--下载结束
* K( m* d5 t3 V4 ^/ dOnDocumentComplete <--页面下载完毕5 t8 ?! c* b9 G

- x6 x, J* z( k( Y/ [对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.9 G; @3 p4 V! \8 C6 g; O7 B

# Z7 ^" ~; Q( _: e: P4 ~对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.2 Q* r8 V- l7 N) j5 M1 A
! s3 B. C; h  @9 L
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?# M7 x$ v. k/ n6 Y: `
0 |* v3 m0 N8 W7 X  P
7.点击链接产生的事件:
+ ^" J5 n: z( o; q7 v
$ q& o9 U7 `: Z5 I- QOnBeforeNavigate2 <--开始链接时会触发此事件
( g2 b! A- _( `OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
3 r1 {8 g) l0 O, |/ x" V5 @& X& W) t. z, _+ E. Y. Q: w/ ^

6 H+ {' W+ j( [  W' c! @- q0 N$ y+ W8.包括相关文件:0 U: L( L' u4 ]" N( q5 Z3 \

8 }0 }8 ^& Y2 g# S* Z#include <mshtmhst.h># G9 Q7 p, `$ h7 s. {! m! p1 V
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
, h- b! ^: Y- m1 `$ z* A0 [#import <mshtml.tlb>8 U  a0 F0 {0 {& a

& T0 L7 T  B& P6 F0 b0 E) _& b请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
9 c4 W# ~2 I1 V% `  ^; E# t5 X' t  _' }+ ^
先告一个段落,下次再来。3 G" N# s& @& R) m9 V7 h3 [
! u% p( ]. D& L, O. Z6 f# T5 ]
黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-14 23:43 , Processed in 0.019918 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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