Dialog nicht bedinbar
-
Hallo!
Ich habe ein kleines Prog geschrieben, das das Hauptwindow aus der Ressource-Datei lädt und anzeigt.
Wenn ich das Programm ausführe kann ich alle Steuerelemente bedienen, das Fenster an sich jedoch ncht bewegen oder schließen.
Woran liegt das? Wie kann ich das verhindern?
Source-Code folgt, sobald ich wieder zuhause bin.MfG
Pokéasm
-
[code]
rc:
#define IDD_DLG1 1000
#define IDC_EDT1 1001
#define IDC_EDT2 1002
#define IDC_EDT3 1003
#define IDC_BTN1 1004
#define IDC_BTN2 1005
#define IDC_BTN3 1006
#define IDC_BTN4 1007
IDD_DLG1 DIALOGEX 6,6,91,82
CAPTION "IDD_DLG"
FONT 8,"MS Sans Serif"
STYLE 0x10CF0000
EXSTYLE 0x00000000
BEGIN
EDITTEXT IDC_EDT1,5,4,80,15,NOT 0x00820000|0x50010000,0x00000200
EDITTEXT IDC_EDT2,5,24,80,15,NOT 0x00820000|0x50010000,0x00000200
EDITTEXT IDC_EDT3,5,44,80,15,NOT 0x00820000|0x50010000,0x00000200
PUSHBUTTON "IDC_BTN",IDC_BTN1,5,64,16,15,NOT 0x00820000|0x50010000,0x00000000
PUSHBUTTON "IDC_BTN",IDC_BTN2,26,64,16,15,NOT 0x00820000|0x50010000,0x00000000
PUSHBUTTON "IDC_BTN",IDC_BTN3,48,64,16,15,NOT 0x00820000|0x50010000,0x00000000
PUSHBUTTON "IDC_BTN",IDC_BTN4,69,64,16,15,NOT 0x00820000|0x50010000,0x00000000
ENDasm:
invoke CreateDialogParam, hInstance, 1000, NULL, WndProc, NULL ;Create the window
mov hWnd,eax ; copy return value into handle DWORD
invoke ShowWindow,hWnd,SW_SHOWNORMAL ; display the window
invoke UpdateWindow,hWnd ; update the display[/code]
-
Wo ist da dein Problem? Du hast in deinem Programm nunmal nur Routinen zum Anzeigen des Fensters - mehr nicht.
Du muesstest jetzt noch Event-Handler einsetzen... z.B. fuer repaint beim Verschieben etc. oder einen zum Beenden des Programms...Wie das genau geht, weiss ich aber leider auch net :p
-
Hab ich doch:
[code]
start:
; ... other code ...
WinMain proc hInst:DWORD, hPrevInst:DWORD, CmdLine:DWORD, CmdShow:DWORD
; ... other code ...
invoke CreateDialogParam, hInstance, 1000, NULL, WndProc, NULL ;Create the window
; ... other code ...
; ... MessageLoop ...
mov eax, msg.wParam
retWinMain endp
WndProc proc hWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD
.IF uMsg == WM_INITDIALOG
mov eax, 0
ret.elseif uMsg == WM_COMMAND
;----------------------------------------------------------------------
; Here the WM_COMMAND message is processed...
; ---------------------------------------------------------------------.elseif uMsg == WM_DESTROY
invoke PostQuitMessage,NULL
mov eax, 0
ret.endif
invoke DefWindowProc,hWin,uMsg,wParam,lParam
ret
WndProc endp[/code]
Oder habe ich da etwa was falsch gemacht???
-
Original erstellt von Nobuo T:
**
Du muesstest jetzt noch Event-Handler einsetzen... z.B. fuer repaint beim Verschieben etc. oder einen zum Beenden des Programms...
**Wenn ich das Fenster ganz normal mit CreateWindowEx erstelle, habe keine routine für "repaint beim Verschieben" (vermutl. WM_PAINT) und alles funktioniert wunderbar.
-
Hm, ok. Wie schon oefters erwaehnt sind meine Kenntnisse zum Thema Windows-Programmierung etwas beschraenkt
Da kann ich dir leider nicht weiter helfen.
-
Hat sich erledigt. Jetzt gehts.