Dialogresource mit PB 3.94 nutzen
Verfasst: 31.07.2005 01:57
Hab mal eine sehr simple Dialogbox als ResourceSkript erstellt und ein Beispiel beigefügt, das diese benutzt. Zum erstellen gibt's diverse Tools, z.B. die IDE von PellesC.
Dialog.rc
jetzt noch der Beispielcode:
Einfach das obige Skript als Dialog.rc abspeichern und in der neuen IDE als Resource hinzugügen.
Diese Dialoge reagieren auch so wie man es von modalen Dialogen gewohnt ist
//Edit: Dialog.rc geändert
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