Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Msgbox mit vier Button und eigenem Icon
#1
Hallo liebe Leserin, lieber Leser,

manchmal möchte man einfachen Text mit einer Messagebox darstellen und wünscht sich einen vierten Button und/oder ein anderes Icon-Bild passend zum Thema.
Geht nicht; bau Dir eine Userform, bekommt man da gesagt.
Und ja, das stimmt. Mit einer Userform kann man alle seine Wünsche individuell umsetzen.
Nur das flexible Einfügen von Bildern, z.B. von einer Tabelle aus, erfordert etwas Mehraufwand z.B. via API.

Dass es aber auch anders geht, möchte ich mit diesem kleinen Beispiel mal aufzeigen.

Man kann die Windows-Messagebox wie auch die interne Excel-MsgBox mit ein paar API-Funktionen leicht manipulieren.
Zum Beispiel die Buttontexte verändern oder ein anderes Icon anzeigen lassen. Auch das selbständige Schließen nach vorgegebener Zeit oder ein Countdown wäre möglich.
Und natürlich die Festlegung der Position der MsgBox.

Hierzu beschaffen wir uns z.B. über Hooking oder den Timer das Handle (interner Zeiger auf die Msgbox) und können nun loslegen mit unserer Manipulation.

Aber halt; da wir ja auch den vierten Button nutzen möchten, realisieren wir unser Vorhaben doch lieber mit der API-Funktion MessageBoxIndirect.
Der vierte Button ist für das Hilfesystem der MsgBox vorgesehen und muss anders gehandelt werden als die drei Standard-Buttons.
Klicke zur Demonstration jetzt einfach mal den Button in der beigefügten Mappe an, denn dadurch erklärt sich vieles von selbst...


.xlsb   MsgboxEx_Workshop.xlsb (Größe: 115,86 KB / Downloads: 29)


Da auch das Klicken des Systemkreuzes extra abgefangen werden kann, gibt es im Prinzip sogar fünf verschiedene Rückmeldungsmöglichkeiten.
Das Abschalten des Systemkreuzes ist natürlich auch möglich, bedarf aber der zusätzlichen Funktionen GetWindowlong und SetWindowlong für je 32 und 64 Bit-Version.

Noch ein Wort zu den Icons.
Diese können aus einer ICO-Datei, aus einer DLL oder EXE oder eben, so wie hier, aus einer Iconsammlung in einer Exceltabelle genommen werden.
Erfordert jeweils eine etwas abweichende Programmierung.

und nun viel Spaß beim Ausprobieren...

viele Grüße
Karl-Heinz
[-] Folgende(r) 6 Nutzer sagen Danke an volti für diesen Beitrag:
  • Kuwer, mumpel, PIVPQ, schauan, Case, JosefSchindler
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste