投稿時間: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
|