Dialogfenster
-
hallo ersteinmal zusammen,
seit kurzen arbeite ich mit fenster und taste mich grade in dialoge .rc - dateien herein. ich habe folgenden quellcode:
Main:/* * ===================================================================== * * Dateiname: main.cpp * * Beschreibung: Arbeiten mit einem Dialogfenster * * Versionsnummer: 1 * erzeugt am: 28.09.2004 08:32:00 Westeuropäische Normalzeit * Fortschritt-Nr: 1 * Compiler: * * Autor: * Umgebung: Home * * Änderungshistorie: NR WER DATUM----- BESCHREIBUNG * 01 tsd 28.09.2004 Erstellen der Grundlagen * * * ===================================================================== */ // ##### HEADERDATEI INCLUDES ###################################### #include <Windows.h> #include "Resource.h" // ##### FUNKTIONS-DEKLARATIONEN #################################### int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow); INT_PTR CALLBACK WndProc(HWND hwnd, UINT uiMessage, WPARAM wParam, LPARAM lParam); // ##### GLOBALE-DEKLARATIONEN ###################################### // ##### FUNTIONSRUMPF ############################################# int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBox(hInstance,MAKEINTRESOURCE(ID_Dialog),NULL,WndProc); return 0; } INT_PTR CALLBACK WndProc(HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam) { switch(uiMessage) { case WM_DESTROY: PostQuitMessage(0); return (0); default: return DefWindowProc(hWnd, uiMessage,wParam, lParam); } }//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by Dialog.rc // #define ID_Dialog 7 // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endifLeider kann ich mit dem Fenster, welches aus einem Abbrechen und OK Button besteht nichts machen. Weder verschieden, Größe verändern noch normal schließen.
Schließen ist nur möglich über den die Symbolleiste mit der rechten Maustaste und schließen. Auch beim überdecken des Fensters wird es nicht erneuert.
Bis jetzt dachte ich, das sich so genannte Templatefenster immer wieder selber auf bauen!Wenn jemand meinenn Fehler kennt, bitte antworte doch eben
Mit freundlichen Grüßen
Der Tim

-
"Although the dialog box procedure is similar to a window procedure, it must not call the DefWindowProc function to process unwanted messages. Unwanted messages are processed internally by the dialog box window procedure."
-
also muss ich jetzt erst alles ausprogrammieren?
leider verstehe ichn nicht, wieso ich noch niemals das fenster verschieben kann
mfg der tim

-
Weil, wie in der MSDN steht (und Dir von 0rp zitiert wurde), nicht behandelte Nachrichten nicht an die DefWndProc geleitet werden dürfen! Und genau das tust Du...
Schau Dir WinAPI.net: Gerüst für einen modalen Dialog an, wie eine DialogProzedur auszusehen hat...
-
danke
