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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:
& M: g' E# z1 j$ G; ~" ?: A- j, \
3 x' H( q1 ]3 E1 {( \    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); $ u6 V+ m3 \( e; y  N

. H8 C3 p! N* }* s& a* {2.实现Ctrl+V:$ S4 n; ~; n) h' Z! }5 Z! H
+ X2 F) v. `! ~4 f  O! A
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); 9 Z% Q5 J3 m* M1 E* Q0 c

' L, d% {: O9 L0 P3.实现查找:
. B- c/ B5 H9 c% E% H9 D! n4 l7 g2 C, ~+ b
MSHTML::IHTMLDocument2Ptr pdoc;/ k) v- X" w7 W! R& [; ?; K
_variant_t varinput,varoutput;
4 I, e  |1 O! _: AIOleCommandTarget *pCmd;
% V0 e7 v1 Y% VHRESULT hr;5 h) F" f& E8 e* {# d
pdoc=GetHtmlDocument();
0 K8 {8 t4 {0 O% ihr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);0 Q. x9 }* r! `" l9 O( l5 p
if(SUCCEEDED(hr))
3 Y4 ?- }- T" [# s" G0 ?{
5 Z, L5 g2 k6 s9 A& k8 r9 Dvarinput=_T("");" e$ r; ~$ \# k  R" V# k6 h
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
" j" J* }- M6 c2 s0 _}
# [7 [8 ]7 W; w" [
' y: Q& ~' ?: |% I4.实现显示源程序:
: F" d5 L% ?* |: P% @  U: ^# q7 g7 [: V$ ]
MSHTML::IHTMLDocument2Ptr pdoc;- Z3 f- T3 Z. Z6 B9 F& G
_variant_t varinput,varoutput;
* N* X' @4 J6 H( E  zIOleCommandTarget *pCmd;5 k' S5 o6 q. R3 V8 _% F, [% w- d
HRESULT hr;
5 J. L* H: E) d- @% spdoc=GetHtmlDocument();4 m4 v6 c& z3 L) X
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);+ [. ]6 h" |- H( O0 p
if(SUCCEEDED(hr))
. j/ {9 [& J2 B& d9 I{
2 A$ E% }% D, nvarinput=_T("");* j( p# u' E! O. o$ u# _8 Q
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);9 N7 n6 C3 k( b4 X/ s
}# v8 z% }4 \- o# {' \: N: R
4 X# E8 Z& c% W) k6 O" l
5.实现显示Internet选项:1 Z1 s) b8 P0 j
" C4 y( Y7 `0 q& H# H5 P
MSHTML::IHTMLDocument2Ptr pdoc;
. b3 Z  y) T2 [/ ]2 f+ B6 H  h/ w_variant_t varinput,varoutput;
+ i1 a2 [+ _* p, F9 Q, v- VIOleCommandTarget *pCmd;5 @3 x4 E; ]% }* A* Z, Y1 \9 N
HRESULT hr;4 Z( `) C" E6 C4 r
pdoc=GetHtmlDocument();- M, q1 I  T, U& G4 A
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);
1 [) p. M8 `0 O& W$ Q+ [if(SUCCEEDED(hr))
" l8 `1 W# z* E. A0 ?* `{$ B3 A. S: R% J# I! |0 w
varinput=_T("");  y+ t  l4 E: j  S- C% y- s' U: Y
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
- W1 l/ g1 r2 y" H}
1 |$ V# w4 n2 K' V, X4 e1 N! w7 u
& k/ t2 V* f8 x7 X1 b$ Y6.下载事件说明:
2 E* s% V( [! C$ W  H" b4 d( I; e6 C4 ?- C% L
OnDownloadBegin <--开始下载
3 X# Q6 j9 ~, G1 R2 c& c) nOnDownloadComplete <--下载结束
) i, C! M- Q6 C! X& fOnDocumentComplete <--页面下载完毕6 u/ f4 a  s' Y: I" n) C+ w
! i% D4 ^8 C4 o, S% @
对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.! [+ ^! D1 ?4 O% C
( M+ Z. e8 D, w, B
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.2 v% T! q# H1 f6 H
: ~( E" c' s, V9 d3 T" {
那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?9 J4 W$ D0 B5 A6 N

2 W$ C6 p4 E' {2 w7 `% D3 _, E7.点击链接产生的事件:
. ^5 W5 r0 P/ c" _6 F) x6 z( A2 J" M0 }0 h* K! d
OnBeforeNavigate2 <--开始链接时会触发此事件
* T5 N5 U$ ~5 i. ~$ l* t7 cOnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)1 W, z+ p: g* k& s. C! P; V
, o+ C; L$ |8 c2 i
! u. o* _2 s5 I4 R
8.包括相关文件:
5 [8 {* k) i4 X+ q) i( F" K- o! a" w2 O/ @# ?) M4 t) x
#include <mshtmhst.h>
0 {* w, R0 F) R! E. B- [! t/ _/ A#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!- x+ b) f; R4 V- D& W/ \. z
#import <mshtml.tlb>
. Y1 ~" v+ K3 O9 u* A  z; D8 y0 l, C1 c- |
请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!
- l0 c5 F: z6 h) |* [# U1 a, s: F3 M5 l! ^9 n( C2 V" ~
先告一个段落,下次再来。% L: F4 n# K  J3 R0 ?9 I9 Q

# d% {0 l7 o# N* T; Q6 N黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-11-15 01:43 , Processed in 0.018079 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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