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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:/ n- c  `# }+ a' Z

, O  B3 h0 p! Q. _9 {8 G    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); ( \1 W& c! N& I' _8 i2 }. j  r# m3 L

7 X1 G5 Q9 l7 j8 \2 ^: E# W" d2.实现Ctrl+V:4 b7 n( C! p6 y% o* Z3 }( x/ J

9 z: A; {3 W3 K" O* M    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 2 ~4 ^* M, `9 h  @( K$ v/ o& o8 D

" C+ _5 I6 ]+ u( k- g7 d3.实现查找:
' M% m9 P1 R, }
3 h3 r# b7 a) `9 v% K  n9 {MSHTML::IHTMLDocument2Ptr pdoc;
! A! E2 U$ `4 N# X_variant_t varinput,varoutput;% U$ {, B2 P: s. x4 ?9 e
IOleCommandTarget *pCmd;* o! P. c' a/ _" T' ?
HRESULT hr;( C4 L  H% o$ a9 K4 B4 e% d! E
pdoc=GetHtmlDocument();# x5 h" f/ {0 `! G) d
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);. ?) O6 e4 p) ^. N
if(SUCCEEDED(hr))
) |' M2 q* U* ?, p' \6 `{
, Q' c- M% y+ w. o# M! T8 m0 b" Kvarinput=_T("");) e1 W" P" q! x* A7 L
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
4 x( L0 h8 x% C5 d}
% P/ I& S5 H1 d" b: p9 X$ X# I* C! _- H9 Y- c+ R
4.实现显示源程序:
# n2 L$ \, F, |' ^  Z* m
$ r! G0 h0 t6 I- v7 [: Z: bMSHTML::IHTMLDocument2Ptr pdoc;
. X6 ?. x$ r0 |" o3 u_variant_t varinput,varoutput;( P( P0 P" A4 D" \8 |# `
IOleCommandTarget *pCmd;
& F$ p9 f/ ~1 u1 r3 hHRESULT hr;
+ q! `! ^( W& a: l6 mpdoc=GetHtmlDocument();1 |* t: X& b" G, K3 H5 U
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);& h# O6 n4 s  q% U5 S8 R( p
if(SUCCEEDED(hr))
2 W3 Y/ p" S) V% g1 G{% y4 \+ Y! q0 f
varinput=_T("");
6 C' ]& ^* y( f4 Ohr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
' T8 @9 E) j- O4 S6 y1 l2 b}
) C9 k  g7 ?: m- \
! Z+ z# j6 Q  A5.实现显示Internet选项:9 h$ a0 ]6 G5 O) k9 L
! z: m+ M! K+ u  p7 s; \& C( k
MSHTML::IHTMLDocument2Ptr pdoc;) K1 y( D, e% u6 `- e  s" \
_variant_t varinput,varoutput;
2 o/ I- W5 Q( V3 YIOleCommandTarget *pCmd;4 i" r7 y7 C. X0 x& {
HRESULT hr;
: U" W1 ]$ E  u( v2 P0 F' R; X3 updoc=GetHtmlDocument();
( l) f9 Y2 B6 g2 zhr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);0 n6 f- a" _' m  q: o
if(SUCCEEDED(hr)); {; j; B9 g" ^0 `7 C6 `2 l% W$ U( T
{6 Q) V9 ^  j# f4 B* \
varinput=_T("");7 J1 p- V$ k# v" {
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
8 c, e- }3 B/ p+ z% v}9 {9 a  L. z# t$ U9 |4 H9 X

; l8 I2 P  ]8 j6.下载事件说明:
8 O9 ^! D5 Y  C; h% L5 B' ]" L: a' g1 r/ M9 q' h9 |5 s
OnDownloadBegin <--开始下载& U4 }: Z% G# y' @/ t/ ?8 y8 n  E9 _
OnDownloadComplete <--下载结束
% s# v, ]/ ]. c6 e0 Z& T! N7 i" H& `OnDocumentComplete <--页面下载完毕/ t& Q$ {& i. H/ L

$ f& `8 ]! N2 X% C, y; J: X对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
1 G0 `% i: n9 {' w
  B, [6 [- e) _& ~对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
' F1 B% S5 }, l; C6 p! [
5 X- a  t: f  s0 f: n9 D# b  Y那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?: L& U$ d: Y! r3 [% k# s
! E" l) _( B# A: n. T
7.点击链接产生的事件:
5 Q/ f0 n& S0 n% ]' _, H4 z" X) L! n$ h. x% c' U! A
OnBeforeNavigate2 <--开始链接时会触发此事件
: _" a' _9 `4 B) M; KOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)+ N" x' `0 c; B

( g% a: V' J( W, L, }/ n
" O) m3 g: _8 E& z8.包括相关文件:
% _! B* j5 p' V
& H. v2 v7 n# r. [: H6 L( O#include <mshtmhst.h>0 Y% R0 N7 v9 P8 z
#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!
. |) P6 h: E: @- n. m$ L#import <mshtml.tlb>
: z& ]# }; c+ X2 O; B0 ]# L
+ l7 V- T5 c# t- T- |/ S请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
0 i7 Z2 K8 c: g5 m3 g: x0 Y7 p; K, X* }: E' T* u
先告一个段落,下次再来。
( t/ K7 [" L3 C; c" v* _& N3 M. ~$ O1 r; o- }; ]
黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 12:01 , Processed in 0.017699 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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