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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
1 ^2 c9 V: H. L1 k/ D9 E9 l6 V( F) D& Z+ P* j
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); / v) Q1 S' j0 S

% ~" ?' x7 e' Y2.实现Ctrl+V:
, W4 x6 r% d3 D8 T' t. }: T
! y2 E! q5 F, S' _  k+ d, e    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
4 ]5 m: F$ w' Y( i. H7 s; e: h* r* {6 a) ?+ o$ U4 K* B* B
3.实现查找:
/ Y: O( ]7 |. S( M! z! @
: E$ j% k* |# {9 B6 |, TMSHTML::IHTMLDocument2Ptr pdoc;! @8 N: W, {( a" T4 P$ G1 }9 T
_variant_t varinput,varoutput;/ Y& u$ t! G* F) F
IOleCommandTarget *pCmd;
& X1 r+ A& i; B( C5 r' yHRESULT hr;
+ ]  R; i0 g) u8 k4 {% C0 n' Hpdoc=GetHtmlDocument();
3 H+ @- o. K' f" Y6 ]7 Lhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
1 f, U% R* h; P2 E: c; Wif(SUCCEEDED(hr))
. z* s( Y0 J. i8 r6 h* d! Z{# }) i' v0 ^+ b
varinput=_T("");$ M+ C( U+ I2 b4 |) e9 y- X4 z
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
& T. }8 w3 O$ X7 j6 A- Z2 }}
7 d3 \+ L! u- o
8 h4 l. h& Q% [) U( e4.实现显示源程序:! r/ u2 V( t6 J* }' l2 Y
5 _8 |8 _- v6 C1 e
MSHTML::IHTMLDocument2Ptr pdoc;# d  K. i+ c& I
_variant_t varinput,varoutput;* v! U, R) d3 m0 m
IOleCommandTarget *pCmd;2 o- L! J) L" I8 Z
HRESULT hr;
+ a6 T0 V- f6 U$ ?/ Y! l, gpdoc=GetHtmlDocument();) @+ d% h1 U$ \/ j; \( i
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
( m: k$ e7 V4 y$ w8 Z4 Aif(SUCCEEDED(hr))& {9 _4 B$ y" J4 }( i) [
{3 b/ W/ A+ i4 T* N6 H4 x
varinput=_T("");
* o1 J& v8 F9 x: @# |hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
6 l/ ?, L9 S: U8 y# K) b& @% ?' i}1 A. x: `+ m" Q- G1 Z1 z
. t5 u  ~, a) o4 G. L; U% w! a
5.实现显示Internet选项:
+ F! C  K) I0 u, i% D( b' }
' S/ r( M5 k0 g: [9 Y9 WMSHTML::IHTMLDocument2Ptr pdoc;
) ~) s3 ]- O! _# P_variant_t varinput,varoutput;& H( l' C: l9 l& E! [. r
IOleCommandTarget *pCmd;
# |! k# H( ]' J- d6 V4 AHRESULT hr;
" t) h" g& V* Wpdoc=GetHtmlDocument();
: V2 V% e- l) Hhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);* z7 [4 {% e3 i2 K5 b! C
if(SUCCEEDED(hr))
' K7 ]5 ]& i5 g8 F9 A% b{9 `0 O8 l% q' k  ^' S
varinput=_T("");
; f9 F+ ^8 W4 B6 A9 ghr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);! ^$ O& G# Y& {: n- z2 S
}
: N) X/ a2 d8 g! ^7 V4 q; F3 g
6.下载事件说明:& L6 X/ u! C5 @
2 C; j, w1 F8 ^" `) u! k
OnDownloadBegin <--开始下载
; E; d3 X  r, q: T" H" D. ]6 \! [OnDownloadComplete <--下载结束
! m; y5 H, v( Q# A1 uOnDocumentComplete <--页面下载完毕
1 Y# @+ j* f' @5 w( j
9 N4 A6 x  h" f& O0 K8 [% @8 R9 {对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.* W# a% j2 v  n; N; n! H4 Q7 V  W
$ K0 y+ q4 ?- N) ]! t
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.- |7 H+ `' W+ y5 o( U( q9 t

) b; s' ?1 C+ g: D# g那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?( x2 ^0 z2 Y, v6 g9 u1 f. j

% ]: s. G' H2 r, L* M5 w7.点击链接产生的事件:
9 _0 U8 z- p# a" Q8 c4 Z  P8 M: \( M! H8 ~" `2 q$ W. Q
OnBeforeNavigate2 <--开始链接时会触发此事件
0 X! D; \" \8 R) I. Q" VOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)+ s7 O& g1 |, {; B" x6 a

3 c: A# c/ ?* s6 ~
' `, A) t- |) c( i# B8.包括相关文件:  n7 b5 D( H( v- F0 ?
; L5 F6 ~7 r) y- m
#include <mshtmhst.h>
6 N: ?* g6 j* S* Y#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
$ |: M- t0 S1 d#import <mshtml.tlb>
  U# U3 N1 A% W2 k- _4 V
$ c/ u# L# p) a4 t1 U# W请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!2 s' l  Y5 o4 w" @* W9 U

! e& X" O1 W. V$ D) x8 L先告一个段落,下次再来。
: h% t- d" J: j: p2 d5 ?( @  f& D- V% X
黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 08:13 , Processed in 0.016908 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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