[リストへもどる]
一括表示

投稿時間:2003/07/07(Mon) 16:04
投稿者名:vbBeginer
Eメール:
URL :
タイトル:
GIFファイルのアニメーションをVBで表示について
こんにちは!
御サイトの「グラフィック関係¥GIFファイルのアニメーションをVBで表示」はとても勉強になりました。2582と2617の投稿も拝見致しました。すごい活発なサイトですよね!

ところで、一つ分からないのです・・。

WebBrowserコントロールにGIFイメージをロードする場合、

Dim strFileName As String
WebBrowser.Navigate strFileName

と書けばいいのは分かったのですが、ならイメージをクリアする場合はどうすればよいのでしょうか・・?
「WebBrowser.Navigate ""」とか「WebBrowser.Navigate NULL」では無理で、もうお手上げ状態です。

もし、ご存知の方がいらしたら是非、ご教授の程、よろしくお願いします。

投稿時間:2003/07/07(Mon) 16:17
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: GIFファイルのアニメーションをVBで表示について
> と書けばいいのは分かったのですが、ならイメージをクリアする場合はどうすればよいのでしょうか・・?

2621にも少し書きましたが、空のドキュメントを出力するには、
  WebBrowser1.Navigate2 "about:blank"
のように記述してください。

その後で(必要に応じて)、styleプロパティやruntimeStyleプロパティを使って、
余白部分のサイズを変更したり、スクロールバーを表示させるかどうかを
指定することもできます。

投稿時間:2003/07/07(Mon) 16:28
投稿者名:vbBeginer
Eメール:
URL :
タイトル:
解決しました!!
>魔界の仮面弁士さん
早急なレス、どうもありがとうございましたm(_ _)m
おかげさまで無事解決いたしました。

「2621」確認しました。
た・・確かにありますよね・・。確認ミスでした。
一応過去レスは目を通していたつもりなのですが・・。恥ずかしい限りです。以後気をつけますです・・。

投稿時間:2003/07/07(Mon) 17:17
投稿者名:vbBeginer
Eメール:
URL :
タイトル:
すみません。もう一つだけ・・。
う〜ん・・。もう一つ分からない事が出てきました・・。

GIFイメージをWebBrowserにロードした後、WebBrowserをダブルクリック(できなければシングルクリック)した時にそのGIFイメージを拡大表示(別フォーム)するようにしたいのですが、イベントにはそれらしいものがなくて困っています・・。クリックイベントに該当するようなものってあるのでしょうか・・??

ご存知の方、いらしたら是非ともご教授ください・・。

投稿時間:2003/07/08(Tue) 11:39
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: すみません。もう一つだけ・・。
> クリックイベントに該当するようなものってあるのでしょうか・・??
クリック時に発生するonclickイベントや、
ダブルクリック時に発生するondblclickイベントなどがあります。
他にも、(右クリック時の)ポップアップメニュー表示前におきるイベントなどもあります。

ただ、これらは WebBrowser自体のイベントとしてではなく、
その中に表示された、各HTML項目のイベントとして実装されています。

# つまり、ボタンがあればそのボタンごとにonclickイベントがありますし、
# 画像項目などがあれば、その画像ごとにonclickイベントがあるわけです。


HTMLのonclickなどのイベントを、VBにて扱う場合には、2つの方法があります。
1つは、「既定のメソッド」を持ったクラスモジュールを作成し、そのインスタンスを
各HTML項目のイベントプロパティ(onclickプロパティ等)に Set する、という方法です。
この場合、クリックされるたびに、この「既定のメソッド」が呼び出されます。


もう1つは、MSHTML.TLB (あるいは、MSHTML.DLL)を参照設定して、それを
WithEvents変数で定義しておき、下記のように記述する、という方法です。

Option Explicit

'イベントを受け取るためのWithEvents宣言
Private WithEvents body As HTMLBody  '背景部分(body要素)のイベント処理用
Private WithEvents Img As HTMLImg    '画像部分(img要素)のイベント処理用

'img要素のダブルクリック時に呼び出される
Private Function Img_ondblclick() As Boolean
    Dim Evt As CEventObj
    Dim S As String
    
    Set Evt = Img.ownerDocument.parentWindow.event

    S = "画像をダブルクリック!" & vbCrLf
    S = S & "(x,y)=(" & CStr(Evt.x) & "," & CStr(Evt.y) & ")" & vbCrLf
    S = S & "(X,Y)=(" & CStr(Evt.offsetX) & "," & CStr(Evt.offsetY) & ")" & vbCrLf

    MsgBox S, vbInformation

    Set Evt = Nothing
    Img_ondblclick = True
End Function

'ページの読込が完了したら、各HTML項目をWithEvents変数に割り当てる
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim Elements As Object

    Set body = pDisp.Document.body
    Set Elements = pDisp.Document.getElementsByTagName("IMG")
    If Elements.length > 0 Then
        Set Img = Elements.Item(0)
    End If
    Set Elements = Nothing
End Sub