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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
/ t1 i6 A6 I6 b, t0 j+ U4 n$ p! H% x4 ^9 L9 k+ m" y+ }
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); " G; n1 [, p7 q$ U9 I8 n
  ?3 y0 ?4 ^  l
2.实现Ctrl+V:! m1 n, f. L1 G9 O

8 w5 A: w, T$ s5 S    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
8 Y0 k% N9 g6 U2 i* g6 c* [) R- t, E9 P) y; l; H
3.实现查找:
5 f5 |! o' f7 V- U: f& T$ e! x$ |
* J, T. h! A3 G5 C6 m6 |MSHTML::IHTMLDocument2Ptr pdoc;$ o& J' L7 q9 X- ^
_variant_t varinput,varoutput;
/ `7 G+ W2 ]& M; r, K: RIOleCommandTarget *pCmd;
. V' K* b3 i( bHRESULT hr;
* P; L, @& P# {$ o/ i5 E+ |) Spdoc=GetHtmlDocument();, [8 |3 Y; g, X* P, }4 `
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
1 U. E+ C2 p- [+ _4 L4 [if(SUCCEEDED(hr))% n9 f+ w' ^8 d
{
; ?' Z/ g0 J8 k5 ovarinput=_T("");
* f# f( h1 j3 Y9 o, S7 j' shr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
3 {" L/ U% G  d}2 O% l2 m3 J$ W& Q! Z
# x  o0 x0 L) m( A
4.实现显示源程序:
* Q+ a5 K# {0 t1 R; P6 Q* _( o8 A! V+ k: x
MSHTML::IHTMLDocument2Ptr pdoc;; j+ ?/ d' Z8 E  H3 D
_variant_t varinput,varoutput;6 |1 K1 r8 U! y( I  [2 N% S
IOleCommandTarget *pCmd;
2 D7 m* y9 L5 K5 r" C; t6 MHRESULT hr;  i( G- P  A, {9 x
pdoc=GetHtmlDocument();, f) v* q4 a! s4 \. N
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
$ O$ Z4 R, {5 sif(SUCCEEDED(hr))
$ B# s; O: }& h; g, }{
* @9 L8 w6 |1 U* t1 F+ ?varinput=_T("");
2 p% a1 |* x( O0 M0 J( Xhr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
' O+ ^9 C7 v/ H0 c0 [2 y$ E+ @}  [! V( K9 @1 Z! T9 L- o! n

$ ^6 l: r. X! K- ^5 F- s- {5.实现显示Internet选项:
" v2 G5 [0 a+ {% Z* @* M) b6 j/ Y1 L9 ]# N; r6 e
MSHTML::IHTMLDocument2Ptr pdoc;7 M$ t, Q' \, u+ M3 R
_variant_t varinput,varoutput;' r0 k6 c; T7 g6 x* Y
IOleCommandTarget *pCmd;4 u  l2 I4 }+ I6 |$ J3 f; B) i
HRESULT hr;) a3 @5 O( y- V: h% @' P& \+ |
pdoc=GetHtmlDocument();) P9 C. ]  J5 W3 K
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
8 F$ S6 e& z% ]4 B) E# Bif(SUCCEEDED(hr))) H, r  b. b; v- A/ g8 m# }$ x
{
, ]' H# q1 Y9 H" u/ L" R' h. ]varinput=_T("");
" z' S$ {4 |+ q& o$ \7 ?3 d, Ehr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);8 V. M/ j  n! C4 S- f
}
( V9 M' n, B1 u
! B& R' z2 [1 z: \6.下载事件说明:+ B; g# T, t7 e- S4 Y
% T2 c2 m6 C( ~
OnDownloadBegin <--开始下载+ k# M& G4 F  O( v: P
OnDownloadComplete <--下载结束
2 w2 i$ U! ^) }& s7 I. ]$ D2 L# WOnDocumentComplete <--页面下载完毕  C7 n4 u1 B) i! G9 u( u
3 j0 o% Y5 Y# j7 j( C
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.7 u; i" d: }( Y* I7 _0 Y

  _: |, X. g. |对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
2 w( U  V: S) ~+ {5 g# _. _  ^8 k0 k0 g' d4 ]
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?
- p5 f3 h# t5 D6 P7 E0 p" z  [) N% D, `9 P& @6 d9 E2 a7 ~$ w
7.点击链接产生的事件:2 p5 y6 L+ T% W+ ]

0 H) {( E5 u% P0 h3 }OnBeforeNavigate2 <--开始链接时会触发此事件. c: d6 S. q1 w
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)# M0 r1 U' s. S5 ]) [: b% p% L

2 p6 Q2 {9 m1 L
9 b8 w) O; `/ l2 S9 W8.包括相关文件:  B7 [, z" ^* |( H( x0 }8 c

0 d2 s: _4 s" L4 W$ H#include <mshtmhst.h>/ B; o' m# w2 T7 @* V; X
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
9 L7 C  N# J& b% U" n#import <mshtml.tlb>' \: Y' W2 X4 b  G$ t/ q) L

' _( `0 K- Y0 [7 I请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!7 D4 k5 b8 V# P8 @* B; {6 ~! ~8 Q

+ @! Y2 u0 z  T" n; v' T$ Z先告一个段落,下次再来。4 J2 z! ]2 u6 w4 o2 K/ _

: G2 h3 r3 c/ k黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-5-2 11:46 , Processed in 0.019851 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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