lt. Dokumentation sollten sich doch Mausereignisse, die auf einem ActiveX-Control ausgelöst werden, über die "normalen" Xbase-Callback-Slots abfangen lassen?!
Das funktioniert aber offensichtlich nicht (zumindest nicht beim xbpHtmlViewer).
Hat jemand eine Idee?
Ich habe das Sample aus der Hilfe des HtmlViewers entsprechend verändert...
Code: Alles auswählen
#include "XBP.CH"
#include "AppEvent.CH"
PROCEDURE Main()
LOCAL oDlg
LOCAL oHTML
LOCAL nEvent, mp1, mp2, oXbp
LOCAL oDA
//
// Erzeugen des Hauptfensters der Anwendung
//
oDlg := XbpDialog():new( Appdesktop() )
oDlg:title := "HTMLViewer-Beispiel"
oDlg:taskList := .T.
oDlg:close := {|| PostAppEvent(xbeP_Quit,,, oDlg) }
oDA := oDlg:drawingArea
oDlg:create( ,, {50,50}, {640,480},, .F. )
oDA:resize := {|| ResizeControl(oHTML)}
//
// Erzeugen des XbpHTMLViewer-Objekts
//
oHTML := XbpHTMLViewer():new( oDA )
oHTML:create( ,, {10,10},{450,300} )
// Warum geht`s nicht?????
oHtml:rbclick := {| aPos, uNIL, self | tone(100,3) }
//
// Navigieren zur Seite "www.alaska-software.com"
//
oHTML:navigate( "www.alaska-software.com" )
//
// Anzeigen des Hauptfenster und bearbeiten
// von Ereignissen, bis das Fenster geschlossen
// wird
//
ResizeControl( oHTML )
oDlg:show()
SetAppWindow( oDlg )
SetAppFocus( oHTML )
nEvent := xbeP_Quit
DO WHILE nEvent != xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
oDlg:destroy()
RETURN
// Anpassen der Größe des XbpHTMLViewer-Objekts,
// sodass es immer die gesamte Fläche der
// Drawing Area des Dialogs einnimmt
PROCEDURE ResizeControl( oHTML )
LOCAL oParent := oHTML:setParent()
oHTML:setPosAndSize( {0,0}, oParent:currentSize() )
RETURN
// Überladene AppSys()-Prozedur zur Unterdrückung
// der Erzeugung des Standard-XbpCrt-Fensters
PROCEDURE AppSys()
RETURN