none
Word2007 - Mousehover für Image-Control RRS feed

  • Frage

  • Hi,

    ich habe auf  einer Userform 12 Image-Controls die mir die Bilder in einem bestimmten Verzeichnis anzeigen. Mit der linken Maustaste kann ich die Bilder auswählen, die ich in das Word-Dokument einfügen möchte. Mit der rechten Maustaste startet ein kleines Bildbearbeitungsprogramm mit dem ich dann noch Kreise und Pfeile in die Bilder einfügen kann.

    Nun wäre es noch recht nützlich, wenn das jeweilige Bild vergrößert angezeigt wird, wenn sich der Mauszeiger eine gewisse Zeit über dem Bild befindet. Leider gibt es aber für die Image-Controls kein Mousehover-Ereignis. Kann man die Sache irgendwie nachbauen, oder gibt es Steuerelemente die man einbinden kann und welche das Ereignis auswerten können ?

    Vielen Dank schon mal

    Thomas

    Sonntag, 21. Juli 2013 04:10

Alle Antworten

  • Du kannst MouseMove stattdessen nehmen, allerdings musst Du die Ereignisse sämtlicher Steuerelemente abfangen, inkl. der Userform selber.

    Wenn die Maus das Image verläßt, dann kommt irgendein anderes MouseMove-Ereignis und in dem kannst Du das Bild "wieder verkleinern".

    Es reicht nicht nur Userform_MouseMove abzufangen, wenn die Maus schnell bewegt wird, dann kann es sein das der Cursor auf einem Button landet, bevor er auf der Form einmal angezeigt wurde.

    Andreas.
    Montag, 22. Juli 2013 10:16
  • Hallo Andreas,

    vielen Dank erstmal - da weiß ich erstmal wie ich rangehen muss !

    Wie kann man die Sache noch derart gestalten, dass das Bild nicht sofort vergrößert wird, sondern erst mit einer gewissen Zeitverzögerung (z.B. 1 sec). Es kann ja sein ich will das Bild zum Einfügen mit der linken Maustaste anklicken. Dann muss ich dafür ja Zeit haben ohne dass das Bild gleich vergrößert wird.

    Die Windows-Api Sleep ist dafür sicher nicht geeignet, da ja dann die gesamte Anwendung für den angegebenen Zeitraum nicht reagiert, also auch nicht auf den linken Mausklick.

    Viele Grüsse

    Thomas !

    Dienstag, 23. Juli 2013 05:25
  • Dann musst Du einen Windows-Timer setzen, d.h. mit

    Private Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
    Private Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, ByVal nIDEvent As Long) As Long

    arbeiten. Google mal nach den API's, es gibt jede Menge Beispiele.

    Andreas.

    Dienstag, 23. Juli 2013 10:32
  • Hallo Andreas,

    scheint ja insgesamt doch alles recht kompliziert zu sein.

    Da das Image-Control von Word noch weitere Mankos hat (keine Handle), so dass man viele andere API's die dieses benötigen nicht verwenden kann z.B. zum Zeichnen stellt sich die Frage ob man nicht doch ein anderes Image-Control welches diese Mängel nicht besitzt einbinden kann, z.B. von .net ?

    Ist das irgendwie möglich ? Mir ist es jedoch noch nicht gelungen !

    Viele Grüsse und vielen Dank

    Thomas

    Mittwoch, 24. Juli 2013 08:00
  • Mir ist kein anderes Control bekannt das man dafür benutzen kann, tut mir leid.

    Andreas.

    Mittwoch, 24. Juli 2013 13:21