Dialog.rc
Code: Alles auswählen
// Einfache AboutBox für PureBasic
// by TS-Soft
1000 DIALOG 0, 0, 109, 52
LANGUAGE LANG_NEUTRAL, 0
STYLE DS_CENTER | DS_MODALFRAME | DS_SETFONT | WS_BORDER | WS_DLGFRAME | WS_POPUP | WS_SYSMENU | WS_VISIBLE
FONT 9, "Arial"
CAPTION "Über..."
BEGIN
CONTROL "PureBasic 3.94 Beta 4 Feel the ...Pure... Power", 1001, "Static", WS_GROUP | WS_VISIBLE, 19, 7, 102, 20
CONTROL "&Okay", 1002, "Button", BS_BOTTOM | BS_CENTER | BS_DEFPUSHBUTTON | BS_TOP | WS_MAXIMIZEBOX | WS_VISIBLE, 35, 30, 50, 15
END
Code: Alles auswählen
; Simples Beispiel für eine AboutBox als Resource
; erstellt von TS-Soft
;/############################################################################
Procedure GetResDialog(DialogId, *DialogProcedure)
ProcedureReturn DialogBoxParam_(GetModuleHandle_(0), DialogId, 0, *DialogProcedure, 0)
EndProcedure
;/############################################################################
;/ Deklaration von Konstanten
; #define IDD_DLG1 1000
; #define IDC_LBL1 1001
; #define IDC_BTN1 1002
#IDD_DLG1 = 1000
#IDC_LBL1 = 1001
#IDC_BTN1 = 1002
; Beispiel einer DialogProcedure
Procedure DlgProc(hDlg, uMsg, wParam, lParam)
Select uMsg
Case #WM_INITDIALOG
MessageBeep_(#MB_ICONINFORMATION)
Case #WM_CLOSE
EndDialog_(hDlg, 0)
Case #WM_COMMAND
ID = wParam & $FFFF
Select ID
Case #IDC_BTN1
EndDialog_(hDlg, #IDC_BTN1) ; 1002 als Rückgabewert bei okay
EndSelect
EndSelect
EndProcedure
; Aufruf der DialogResource
Select GetResDialog(#IDD_DLG1, @DlgProc())
Case 0
MessageRequester("Dialog-Test", "Dialog wurde geschlossen")
Case #IDC_BTN1
MessageRequester("Dialog-Test", "Benutzer hat Okay gedrückt zum beenden")
EndSelect
Diese Dialoge reagieren auch so wie man es von modalen Dialogen gewohnt ist

//Edit: Dialog.rc geändert