タイトル : Re: WebBrowser Control 上で Click イベントを取得したい。 投稿日 : 2009/04/15(Wed) 23:01 投稿者 : 魔界の仮面弁士
> WebBrowser Control の Click イベント(あるいは MouseDown イベント)を ポップアップなら、タイミングとしては MouseUp では無いでしょうか。 > 取得する方法が分からず困っています。 PDF の表示を担当しているのは WebBrowser ではなく、PDF のビューワソフトであり、 WebBrowser の機能としては用意されていません。 まずはビューワ―ソフトの側に、該当機能が無いかどうか探してみてください。 ビューワー側に取得機能が無い場合、代替案として、DirectInput を使うということも できます。参照設定から [DirectX 8 for Visual Basic Type Library]を選択して、 以下のコードを試してみてください。 Option Explicit Implements DirectXEvent8 Private DX As DirectX8 Private DI As DirectInput8 Private Mouse As DirectInputDevice8 Private mhEventM As Long Private Sub RightButtonUp() Debug.Print "ポップアップ" PopupMenu Me.mnuPopup End Sub Private Sub RightButtonDown() End Sub Private Sub Form_Activate() Mouse.Acquire End Sub Private Sub Form_Load() Me.WebBrowser1.Navigate2 "C:\001.PDF" Set DX = New DirectX8 Set DI = DX.DirectInputCreate() Set Mouse = DI.CreateDevice("GUID_SysMouse") Mouse.SetCommonDataFormat DIFORMAT_MOUSE2 Mouse.SetCooperativeLevel Me.hWnd, DISCL_NONEXCLUSIVE Or DISCL_FOREGROUND Dim diprop As DxVBLibA.DIPROPLONG diprop.lHow = DIPH_DEVICE diprop.lObj = 0 diprop.lData = 8 Mouse.SetProperty "DIPROP_BUFFERSIZE", diprop mhEventM = DX.CreateEvent(Me) Mouse.SetEventNotification mhEventM End Sub Private Sub DirectXEvent8_DXCallback(ByVal eventid As Long) If eventid <> mhEventM Then Exit Sub End If On Error Resume Next Dim devdata(7) As DIDEVICEOBJECTDATA Dim datacnt As Long datacnt = Mouse.GetDeviceData(devdata, DIGDD_DEFAULT) If Err.Number <> 0 Then datacnt = 0 Mouse.Acquire End If On Error GoTo 0 Dim i As Long For i = 0 To datacnt - 1 If devdata(i).lOfs = DIMOFS_BUTTON1 Then Select Case devdata(i).lData Case 0 RightButtonUp Case 128 RightButtonDown End Select End If Next End Sub Private Sub Form_QueryUnload(Cancel%, UnloadMode%) Mouse.Unacquire DX.DestroyEvent mhEventM mhEventM = 0 End Sub Private Sub Form_Unload(Cancel As Integer) Set Mouse = Nothing Set DI = Nothing Set DX = Nothing End Sub |