| Hauptseite  >Tips zu VB5/6  >  MessageBox und CommonDialog platzieren  view this document in English | |
| 
          Die MessageBox wird bekanntlich standardmässig in der Bildschirmmitte angezeigt. Manchmal ist es jedoch
          notwendig, sie selbst zu platzieren. Nur: Wie? Ein Hook hilft hier weiter. Zur Erklärung: einen Hook setzten bedeutet, dem Betriebssystem mitzuteilen: "Ruf doch bis auf weiteres bei jeder Windows-Nachricht, die meinen Thread betrifft, folgende Routine von mir auf: ..." und in dieser Routine dann zu reagieren, wenn das Erzeugen des MsgBox-Fensters bekanntgegeben wird. Da mit dieser Nachricht auch das Fensterhandle der MsgBox mitgegeben wird, kann man nun diesem Fenster eine Nachricht schicken, es möge sich bitte an den Koordinaten x und y platzieren. Danach sollte der Hook sofort aufgehoben werden. Das Erzeugen eines Fensters (nebenbei: auch Buttons usw. sind Fenster!) wird mit der Nachricht WM_CREATE bekanntgegeben. Nun muss herausgefunden werden, ob es das gewünschte Fenster ist; mit GetClassName kriegt man den Klassennamen heraus, und wenn das Fenster der Klasse #32770 (das ist das Dialogfenster!) angehört, greifen wir ein. In ein Standard-Modul muss Folgendes: 
Der Aufruf erfolgt jetzt ganz einfach:
Übrigens: Da das CommonDialog-Fenster ebenfalls der Fensterklasse #32770 angehört, kann es mit dem
          vorherigen Aufruf von Position32770 ebenso platziert werden. | |
| Hauptseite > Tips zu VB5/6 > diese Seite | |
| © 2001-2021 Wolfgang Enzinger   | |