如提,谢谢

解决方案 »

  1.   

    IWebBrowser2::ExecWB
    IHTMLDocument2::execCommand 
      

  2.   

    No17085: CHtmlViewの検索機能について [神田智博] (99/06/24 11:14)いつもお世話になっております。CHtmlViewの機能についてお伺いしたいのですが、
    検索はどのように行うのでしょうか?
    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);他には、
    &#12539;keybd_eventでCtrl+Fをシミュレートする
    &#12539;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では効かない気がするんですけども&#12539;&#12539;&#12539;。
    最新の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引数に渡した文字列を探して選択させるコマンドの
    はずなんですが&#12539;&#12539;&#12539;どうやっても検索ダイアログが出ます(^^;
    なので書いたとおり本当に「根拠なし」です。ついでにフォントのサンプル(IEZoom)の件ですが、ソース中にある
    OLECMDF_ENABLEDの判定を取っ払えばIE5でも動作するみたいです。=== Kouichi Morohashi <諸橋 孝一>
    === mailto:[email protected]
    No17162: Re: CHtmlViewの検索機能について [神田智博] (99/06/29 08:49)=== Kouichi Morohashi <諸橋 孝一>さん
    アドバイス本当にありがとうございます。安易に考えて、すぐにコーディングしてしまい申し訳ありません
    でした。確かに、わからないときにすぐに質問してばかりでは、
    成長することはできないかもしれません。今回のアドバイスを
    戒めとして、自分の力で調べてみたいと思います。> ともに勉強しつつ、フィードバックも欲しいと思っています。大したフィードバックはできないかもしれませんが、いつかアドバイス
    出来るような知識を得るように頑張ります。
    > そんなわけでインクルードファイルについてはもう少し探してみて
    > ください(ヒント:grep)。ヒントありがとうございます。                                 かんだ.