如提,谢谢
解决方案 »
- 查询硬盘占用disk 0/disk 1的API函数
- 文件传输,会中断问题,在线等
- 关于应用VC++调用EXCEL开发列表的问题!
- 请在 Richedit里面显示gif格式的动态图片,答对给1000分 或 给1000元钱
- 标题栏上的关闭程序按扭(小叉叉)的响应函数如何重载?
- //最大熵和法,请教!!有关文章有吗?
- 关于spin控件的小问题
- ODBC驱动程序不支持动态记录集的错误,错在何处?有何解决办法?请大虾指点!多谢!!!
- ClassWizard不能给对话框按钮添加消息映射的问题
- 请教不同平台的DLL的处理问题,高手看过来!!只有这些分
- 我下了VS.net2003,只有一个ISO,我用daemon装,中途让我换碟,怎么办?
- 有关多媒体定时器的问题?(分数刚才给少了,在加80分)
IHTMLDocument2::execCommand
検索はどのように行うのでしょうか?
CEditView の FindText のような処理を行いたいと
考えております。クラスメンバに似たような関数が
ないのですが、どのようにすればよいのでしょうか?また、前から疑問に思っていたのですが、CHtmlViewで
アプリケーションを作成すると、フォントの大きさが使用
しているブラウザ(IE5.0)のフォントの大きさに依存している
のですが、フォントの大きさや種類をプログラムで任意に
変更できるのでしょうか?
アドバイスをお願いいたします。 かんだ.環境:NT VC++6.0No17131: Re: CHtmlViewの検索機能について [Kouichi Morohashi] (99/06/27 00:22)諸橋です。----- Original Message -----
From: 神田智博 <[email protected]>
To: <[email protected]>
Sent: Thursday, June 24, 1999 11:14 AM
Subject: [mfc 17085] CHtmlViewの検索機能について
> CHtmlViewの機能についてお伺いしたいのですが、
> 検索はどのように行うのでしょうか?
> CEditView の FindText のような処理を行いたいと
> 考えております。クラスメンバに似たような関数が
> ないのですが、どのようにすればよいのでしょうか?根拠はないですが、次のようにするとIE5の検索ダイアログは
出るみたいです。
#include <mshtmcid.h>
CComQIPtr<IOleCommandTarget, &IID_IOleCommandTarget> pTarget;
pTarget = GetHtmlDocument();
pTarget->Exec(&CGID_MSHTML, IDM_FIND,
OLECMDEXECOPT_PROMPTUSER, NULL, NULL);他には、
・keybd_eventでCtrl+Fをシミュレートする
・IHTMLTxtRange::findTextなどを使って全部自前でやる
といった方法もあると思います。> また、前から疑問に思っていたのですが、CHtmlViewで
> アプリケーションを作成すると、フォントの大きさが使用
> しているブラウザ(IE5.0)のフォントの大きさに依存している
> のですが、フォントの大きさや種類をプログラムで任意に
> 変更できるのでしょうか?フォントの大きめ小さめをOLECMDID_ZOOMコマンドで変えるサンプルが
あります。
Q156693 SAMPLE: IEZoom.exe Changes the Font Size of WebBrowser Control
http://support.microsoft.com/support/kb/articles/Q156/6/93.asp
しかし試してみたらIE5では効かない気がするんですけども・・・。
最新のmshtmcid.hにはIE5専用?のIDM_ZOOMRATIOというコマンドが
定義されてますし、ひょっとしてそちらに移行したのかも?
(IDM_ZOOMRATIOのドキュメンテーションは全く見当たりませんので
当て推量です)ダイナミックHTMLを使えば、フォントに限らずブラウザの表示内容を
プログラムから自由に変更できます。
BASEFONTのSIZE属性を変えるコードを書いてみました。
#import <mshtml.tlb>
MSHTML::IHTMLDocument2Ptr pDoc2;
pDoc2 = GetHtmlDocument();
MSHTML::IHTMLElementCollectionPtr pElements =
pDoc2->Getall()->tags("BASEFONT");
if (0 < pElements->Getlength())
{
// BASEFONTタグあり、SIZEを7に変更
ASSERT(1 == pElements->Getlength());
MSHTML::IHTMLBaseFontElementPtr pFont =
pElements->item((long)0);
pFont->Putsize(7);
}
else
{
// BASEFONTタグなし、<BASEFONT SIZE=7>を挿入
pDoc2->Getbody()->PutinnerHTML(
_bstr_t("<BASEFONT SIZE=7>") +
pDoc2->Getbody()->GetinnerHTML());
}CHtmlViewを掘り下げるなら、一度ダイナミックHTMLを調べてみる
ことをお勧めします。=== Kouichi Morohashi <諸橋 孝一>
=== mailto:[email protected]: Re: CHtmlViewの検索機能について [神田智博] (99/06/28 14:11)Kouichi Morohashi <諸橋 孝一>さん
いつもご親切なアドバイス、本当にありがとうございます。早速、コーディングしてみたのですが、以下のところで
エラーになってしまします。> pTarget->Exec(&CGID_MSHTML, IDM_FIND,
> OLECMDEXECOPT_PROMPTUSER, NULL, NULL);“CGID_MSHTML”が定義されていない識別子という
エラー内容になってしまいます。ヘルプで検索してみたの
ですが、“CGID_MSHTML”という言葉がありませんでした。大変、申し訳ありませんが、アドバイスをお願いいたします。 かんだ.追伸:
CComQIPtrを使用するときは、以下のファイルをインクルード
しなければなりませんでした。
#include <atlbase.h>No17158: Re: CHtmlViewの検索機能について [Kouichi Morohashi] (99/06/28 21:00)諸橋です。----- Original Message -----
From: 神田智博 <[email protected]>
To: <[email protected]>
Sent: Monday, June 28, 1999 2:11 PM
Subject: [mfc 17151] Re: CHtmlViewの検索機能について
> 早速、コーディングしてみたのですが、以下のところで
> エラーになってしまします。しつこいようですが、
CHtmlViewを掘り下げるなら、早速コーディングしないで、
一度ダイナミックHTMLを調べてみることをお勧めします。
というか私も勉強中であり、
ともに勉強しつつ、フィードバックも欲しいと思っています。> > pTarget->Exec(&CGID_MSHTML, IDM_FIND,
> > OLECMDEXECOPT_PROMPTUSER, NULL, NULL);
>
> “CGID_MSHTML”が定義されていない識別子という
> エラー内容になってしまいます。ヘルプで検索してみたの
> ですが、“CGID_MSHTML”という言葉がありませんでした。> 追伸:
> CComQIPtrを使用するときは、以下のファイルをインクルード
> しなければなりませんでした。
> #include <atlbase.h>No.17146の親切な回答は、完結したプログラムとして書いた以上、
責任を感じたまでです。
また、特別mshtmcid.hだけ書いたのは、IDM_FINDというのが
どこにでもありそうな名前なので誤解が無いようにしただけ
なんですが、仇になったかもしれません。
そんなわけでインクルードファイルについてはもう少し探してみて
ください(ヒント:grep)。ヘルプとは、VC6ならMSDNライブラリですよね?
Dynamic HTMLやMSHTML関連は、MSDNライブラリの中では
+ プラットフォーム SDK
+ Platform SDK
+ Web Services
+ Workshop
に詳しいですが、VC6付属の古いバージョンに載っているかどうかは
わかりません。
たとえ最新(April '99)のMSDNライブラリであっても、Web Workshopの
中は検索が及ばないみたいです(宝の山なのに)。
MSDN Onlineでは、Web Workshopの中も検索できます。
http://search.microsoft.com/us/dev/
あるいはPlatform SDKを入手可能なら、インストールして
そちらのヘルプを使えばちゃんと検索できます。本題の件ですが、正式なドキュメントを見つけました。
Q175513 FILE: Invoke Find, View Source, Options dialogs for WebBrowser
http://support.microsoft.com/support/kb/articles/Q175/5/13.asp
IE3とIE4で動く検索ダイアログの出し方が載ってますが、
「undocumentedなことをやっているので将来のIEで動く保証は無い」
と書いてあります。でも、試してみるとIE5でも動くみたいです。
CGID_MSHTMLとIDM_FINDについては、前述のWeb Workshopの中でIE5以降
の仕様としてちゃんと書いてあります。ところが私のやり方が悪いのか
書いてある説明と実際の動作がどうも一致しません。
説明によると、第4引数に渡した文字列を探して選択させるコマンドの
はずなんですが・・・どうやっても検索ダイアログが出ます(^^;
なので書いたとおり本当に「根拠なし」です。ついでにフォントのサンプル(IEZoom)の件ですが、ソース中にある
OLECMDF_ENABLEDの判定を取っ払えばIE5でも動作するみたいです。=== Kouichi Morohashi <諸橋 孝一>
=== mailto:[email protected]
No17162: Re: CHtmlViewの検索機能について [神田智博] (99/06/29 08:49)=== Kouichi Morohashi <諸橋 孝一>さん
アドバイス本当にありがとうございます。安易に考えて、すぐにコーディングしてしまい申し訳ありません
でした。確かに、わからないときにすぐに質問してばかりでは、
成長することはできないかもしれません。今回のアドバイスを
戒めとして、自分の力で調べてみたいと思います。> ともに勉強しつつ、フィードバックも欲しいと思っています。大したフィードバックはできないかもしれませんが、いつかアドバイス
出来るような知識を得るように頑張ります。
> そんなわけでインクルードファイルについてはもう少し探してみて
> ください(ヒント:grep)。ヒントありがとうございます。 かんだ.