Konfigurierbare Windows Messageboxes mit Blitz3D

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

x-pressive

Betreff: Konfigurierbare Windows Messageboxes mit Blitz3D

BeitragSa, Jan 31, 2004 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Sicher schon mal da gewesen, aber wirklich ungemein nützlich:

So kriegt ihr frei konfigurierbare Windows Messageboxes mit Blitz3D hin -ihr könnt Text, Window-Titel, Buttons und sogar das angezeigte Icon-Symbol bestimmen (z.B. Fragezeichen) -mit einem einzigen Funktionsaufruf. Ausserdem gibt die Funktion einen Code zurück, so das man weiss, ob der User z.B. auf 'Ja', 'Nein', 'Abbrechen' usw. geklickt hat. Nützlich zum Debuggen, aber auch für Userinput.

ANLEITUNG:

1. Erstellt eine Textdatei mit den folgenden Zeilen:

.lib "user32.dll"
API_MessageBox% (hwnd%, lpText$, lpCaption$, wType%) : "MessageBoxA"

2. Speichert diese Datei unter dem Namen 'user32.decls' in euren userlibs Ordner (wo Blitz installiert ist)

3. Fügt den folgenden Code entweder in euer Programm ein oder speichert ihn z.B. als 'messagebox.bb' ab. Dann könnt ihr ihn in euer Hauptprogramm ganz einfach mit include"messagebox.bb" einfügen. Ist eine saubere Lösung.

4. Um eine Messagebox zu erzeugen, reicht nun ein Funktionsaufruf. Beispiel:

result% = DisplayMessageBox("titeltext","text",symbol,buttons,selected)

-titeltext und text können irgendein Text sein.
-buttons bestimmt, welche Buttons angezeigt werden. Verschiedene Zahlen entsprechen verschiedenen Button-Kombinationen. Liest hierzu die Kommentarzeilen im Code. Da sind alle aufgeführt. Wollt ihr z.B. die Buttons Ja/Nein anzeigen, gebt ihr die Zahl 4 an, oder einfacher die Konstante MB_YESNO
-symbol: sucht euch die jeweilige Zahl bzw. die Konstante für das gewünschte Symbol aus den kommentierten Zeilen im Code heraus.
-selected bestimmt, welcher der Buttons den 'Fokus' enthält. Gebt ihr hier '0' an, ist es immer der erste.
-result: die Funktion gibt einen Wert zurück, der angibt, welchen Button der User gedrückt hat. Welche Werte das sein können, steht auch in den Kommentarzeilen des Codes.

BlitzBasic: [AUSKLAPPEN]

; MESSAGE BOX BUTTONS
Const MB_OK = 0 ; [OK] - Default
Const MB_OKCANCEL = 1 ; [OK] [Cancel]
Const MB_ABORTRETRYIGNORE= 2 ; [Abort] [Retry] [Ignore]
Const MB_YESNOCANCEL = 3 ; [Yes] [No] [Cancel]
Const MB_YESNO = 4 ; [Yes] [No]
Const MB_RETRYCANCEL = 5 ; [Retry] [Cancel]
; MESSAGEBOX ICONS
Const MB_NOICON = 0 ; No icon - Default
Const MB_ICONSTOP = 16 ; A 'STOP' icon
Const MB_ICONQUESTION = 32 ; A question mark icon
Const MB_ICONEXCLAMATION = 48 ; An exclamation mark icon
Const MB_ICONINFORMATION = 64 ; An information 'i' icon
; MESSAGE BOX DEFAULT BUTTON
Const MB_DEFB1 = 0 ; 1st button is the default - Default
Const MB_DEFB2 = 256 ; 2nd button is the default
Const MB_DEFB3 = 512 ; 3rd button is the default

; MESSAGE BOX RETURN CODES
Const MB_IDOK = 1 ; [OK] was selected
Const MB_IDCAN = 2 ; [Cancel] was selected
Const MB_IDABO = 3 ; [Abort] was selected
Const MB_IDRET = 4 ; [Retry] was selected
Const MB_IDIGN = 5 ; [Ignore] was selected
Const MB_IDYES = 6 ; [Yes] was selected
Const MB_IDNO = 7 ; [No] was selected
Const MB_IDERR = 0 ; An API error occurred (check params)

;FUNCTION: DISPLAY API MESSAGE BOX
;-----------------------------------------
Function DisplayMessageBox(title$,txt$,icon%,buttons%,selected%)
result% = API_MessageBox (0, txt, title, icon+buttons+selected)
Return result
End Function
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group