C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■40008  Re[1]: ウェブブラウザで表示したページを、拡大・縮小表示
□投稿者/ Hongliang -(2009/08/19(Wed) 14:11:21)
記事No.40006 のレス /過去ログ69より / 関連記事表示
削除チェック/

■40157  Re[6]: ウェブブラウザで表示したページを、拡大・縮小表示
□投稿者/ 魔界の仮面弁士 -(2009/08/20(Thu) 19:19:26)
    No40139 (RT さん) に返信
    > Me.WebBrowser1.Document.body.runtimeStyle.Zoom = "250%"

    上記は <BODY> に対して style="zoom:250%" 相当の指定を行うための物です。
    この構文を理解するために、まずはアンマネージ DOM における
     .runtimeStyle
     .style
     .currentStyle
    の違いについて調べておいてください。


    さて、マネージ DOM でスタイルを指定する場合の話ですが、こちらは、HtmlElement クラスの
     .Style
    というプロパティが該当します。これは、アンマネージ版における .style に相当する物で、
     MessageBox.Show(webBrowser1.Document.Body.Style);
     webBrowser1.Document.Body.Style += ";Zoom:250%";
     MessageBox.Show(webBrowser1.Document.Body.Style);
    のような記述が可能です。


    ただし、currentStyle や runtimeStyle に相当する機能は用意されていないため、
    たとえば現在の拡大率を調べる必要があるならば、
     mshtml.IHTMLElement2 body = (mshtml.IHTMLElement2)webBrowser1.Document.Body.DomElement;
     MessageBox.Show((string)((mshtml.IHTMLCurrentStyle2)body.currentStyle).zoom);
     ((mshtml.IHTMLStyle3)body.runtimeStyle).zoom = "250%";
     MessageBox.Show((string)((mshtml.IHTMLCurrentStyle2)body.currentStyle).zoom);
    のように、アンマネージ版の DOM を使わねばなりません。



    No40008 (Hongliang さん) に補足
    > ただ、body の zoom を変更するとスクロールバーまで拡大縮小されるみたいですけど。

    その動作は、IE のバージョンによって異なります。
    また、後方互換モードか否かによっても変化します。

    具体的には、
     mshtml.IHTMLDocument5 doc = (mshtml.IHTMLDocument5)webBrowser1.Document.DomDocument;
     string compatMode = doc.compatMode;
    を実行したときに、compatMode が "BackCompat" となる Web サイトであればスクロールバーごと
    拡大されますし、"CSS1Compat" となる Web サイトならばスクロールバーは変化しないかと思います。
記事No.40006 のレス /過去ログ69より / 関連記事表示
削除チェック/

■42101  Re[2]: DHTML EDITコントロールで表示したページを拡大・縮小
□投稿者/ 魔界の仮面弁士 -(2009/10/07(Wed) 21:55:17)
    No42097 (RT さん) に返信
    > DHTML EDITコントロールに表示したページを拡大・縮小する事は不可能なのでしょうか、それともすぐには出来ないが、やる方法はあるのでしょうか?
    
    恐らく、 No40154 の後者のズーム方法に相当する機能はサポートされていないのでは無いかと。
    
    これが No40008 / No40157 の方法でも良いのであれば、.DOM プロパティで
    IHTMLDocument2 インターフェイスを得られますので、そこから runtimeStyle の
    zoom プロパティを割り当てることで拡大率を指定することができます。
    
    private void Form1_Load(object sender, EventArgs e)
    {
        axDHTMLEdit1.LoadURL("http://www.yahoo.co.jp/");
    }
    
    private void button1_Click(object sender, EventArgs e)
    {
        ((mshtml.IHTMLStyle3)((mshtml.IHTMLElement2)axDHTMLEdit1.DOM.body).runtimeStyle).zoom = "200%";
    }
    
    
    あるいは、(表示だけで)操作できなくても良ければ、OleDraw API で拡大した画像を得られるかも知れません(未確認)。
記事No.42027 のレス /過去ログ72より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -