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

IE编程技巧大全

[复制链接]
发表于 2003-10-18 18:48:13 | 显示全部楼层 |阅读模式
1.实现Ctrl+C:% R/ i: {( k/ F6 D' ]; Q9 P* b/ H
3 x7 y& g* u( ^9 n
    ExecWB(OLECMDID_COPY,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL); & i" B( C4 i) B/ K5 b
! n$ e5 }- ~: L6 \* P
2.实现Ctrl+V:4 d) c5 U) @2 ]
7 x6 G# f" c0 Y) \( l
    ExecWB(OLECMDID_PASTE,OLECMDEXECOPT_DONTPROMPTUSER,NULL,NULL);
) q3 n  j2 p9 [3 K1 c2 w3 R. S3 s% t  U& V
3.实现查找:6 B2 v& G3 {; B5 @% ?5 \( L
) l- s, C# k3 Z, R1 I
MSHTML::IHTMLDocument2Ptr pdoc;6 Y7 h2 _6 C1 w' ~9 x
_variant_t varinput,varoutput;
, p5 M# F# k! V) c, e& V1 UIOleCommandTarget *pCmd;; o; k2 I& J7 g
HRESULT hr;
- [6 o1 `0 _  z* epdoc=GetHtmlDocument();0 v" i* O9 J" P6 x; f
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);7 r( s* G! L* z& E$ z  f# k- b) G
if(SUCCEEDED(hr))
: H# [9 a0 }# X; H{
6 Z; R. c! V1 g8 ]varinput=_T("");9 b. i9 _/ t4 {8 {$ n3 t" P4 m. @0 _
hr=pCmd->Exec(&CGID_MSHTML,IDM_FIND,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);* ~6 K3 H& V- @5 Y; E
}
5 M) Y6 `( Q/ l) U7 K& y( a$ z$ P
4.实现显示源程序:6 E: t) L( c) {

; K! C: e- u$ q9 O; EMSHTML::IHTMLDocument2Ptr pdoc;
- }4 i5 B6 u) A$ X_variant_t varinput,varoutput;$ i9 j0 u0 s  Q8 j/ y( c
IOleCommandTarget *pCmd;
1 D8 ~8 y, b7 o/ }* i% jHRESULT hr;
- d" O, |, q* A9 \) }0 jpdoc=GetHtmlDocument();8 `' `/ `% d6 Q
hr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);4 X2 l0 z) d+ a. w5 J/ j: q) p
if(SUCCEEDED(hr))  c% k& R4 |( L: b/ _
{
% E  b, l+ j7 c3 y( Zvarinput=_T("");+ B, J9 c& R5 s. u& ^& w
hr=pCmd->Exec(&CGID_MSHTML,IDM_VIEWSOURCE,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
0 K' _0 \. q3 o6 Y; \% M}
  |$ q! J8 X* X/ c) ~- r" J0 e0 ^- i- b+ {4 E
5.实现显示Internet选项:
: F. {. D( [! Z* M$ d% T; ^% v: U" c5 u6 L/ T3 Z) g6 X2 ]
MSHTML::IHTMLDocument2Ptr pdoc;& Z3 b" T9 [( k* r* A& L
_variant_t varinput,varoutput;0 B. a* g8 k8 s8 @5 F  Q: I  }
IOleCommandTarget *pCmd;
2 _/ ]! b8 l* g  x8 H' XHRESULT hr;, p2 V% @! I1 Y, F4 {
pdoc=GetHtmlDocument();
5 n6 r7 F9 i; }. c' {5 Ohr=pdoc.QueryInterface(IID_IOleCommandTarget,&pCmd);( S5 C. w( m$ U2 N7 D& P- \( ~
if(SUCCEEDED(hr))8 K) @) `* d$ Q1 v+ U) L6 t& B% w- b
{% T! u+ L. x1 }: g% F, |7 J2 D( Z
varinput=_T("");1 a: R4 ^6 n7 j* r" _: C  o
hr=pCmd->Exec(&CGID_MSHTML,IDM_OPTIONS,OLECMDEXECOPT_DODEFAULT,&varinput,&varoutput);
' c( |# c4 }6 v8 g$ _}' s$ Q) L6 p, p; p4 `

0 h1 ^! F* s9 }6 j$ H6.下载事件说明:8 d# E* `2 j: g$ I6 g7 {

. {% g- f, I& |5 mOnDownloadBegin <--开始下载
$ u8 [) ~/ g+ e+ L- ]* C& \' eOnDownloadComplete <--下载结束* g3 `' G* L! v0 Z3 l6 x
OnDocumentComplete <--页面下载完毕
" i6 v/ o" N9 Z) j* r% w0 q/ u
5 c: f" ?8 M' @# A$ ~' e- N) l对于每个HTML页面,顺序都是如此.如果是Frame或IFrame的文件都会当成HTML页面处理.也就是说如果一个页面中有3个IFrame,那么总共会触发4次BeforeNavigate2事件.
& A6 z7 A& O: `7 L, X! m( E# O. D9 r2 k+ I
对于每个连接且需要显示出来的二进制文件(如*.gif,*.bmp,*.jpg...)都会触发一个DownloadBegin和DownloadComplete事件.
' Y# ~4 p8 D& g) Q: m
& l8 t0 L3 o3 J* E5 b* T6 ?, Q那我们怎么判断是否全部下载完毕呢?嘿嘿,TWebBrowser控件不是有一个Busy属性的吗?. \' L- N) z  ?+ H  i* E& X4 |

% q0 _7 e7 e6 i0 R1 T+ P7.点击链接产生的事件:
1 \) ?& b5 ~+ a$ d  C
4 P5 Z0 h3 M9 A# fOnBeforeNavigate2 <--开始链接时会触发此事件# l- v$ e" a" g
OnNavigateComplete2 <--成功的链接到此网页(以后才会有上面的事件)
9 o( i0 v- i- M: q% Z8 R
* G; H8 w! o$ p/ a1 _% B' y% L$ g- U6 _
8.包括相关文件:
2 F* z( k  B* V1 I# `
; J( e6 ^9 |0 f0 T9 j4 ^#include <mshtmhst.h>
0 }+ w; V: R8 W9 O( n#include <mshtmcid.h>//这里面有很多实现IE功能的XXID,请看一看!- {* L7 a/ o, e
#import <mshtml.tlb>
+ K/ ?4 G  ^" h+ W% ?
+ b2 a! w4 B- V1 H2 n请充分发挥资料管理器的查找功能呀!,这都不会用还学VC!! j2 a: a* Y; ?$ e4 y3 ~: B
5 V0 k& S/ @$ d* l! _
先告一个段落,下次再来。
9 {* u. `5 A6 Z8 P  z8 r$ y& _4 n, B1 {* V
黄森堂著
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-18 10:16 , Processed in 0.018663 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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