VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -