Fenster schließen & wieder öffnen
-
GEHT NICHT!!
Hab ich schon versucht
... Aber egal was, es muss in WM_DESTROY, oder??
-
Hab ich evtl am Anfang schon was falsch??
//Fenster wird erstellt hWnd_additem = CreateWindow(szAppNameAI, "AddItem", WS_OVERLAPPEDWINDOW, 100, 120, 400, 195, NULL, NULL, hInstance, NULL); //Fenster wird geöffnet (Irgenwo in WM_COMMAND) ShowWindow(hWnd_additem, SW_NORMAL); UpdateWindow(hWnd_additem);
-
RedEagle schrieb:
... Aber egal was, es muss in WM_DESTROY, oder??
nein sonst müsstest du jedesmal wenn du ein neues fenster haben möchtest dieses erstellen.
RedEagle schrieb:
Hab ich evtl am Anfang schon was falsch??
vermutlich
1. alle fenster erstellen (register und createwindow, etc)
[vermutung] fenster b sollte keine x btn haben sondern wahrscheinlich nur
ok und abruch
2. fenster b hiden
3. fenster a anzeigen
4. fenster a btn click (WM_COMMAND)
5. showwindow fenster b
6. nach der aktion fenster wieder verstecken --> btn click auf ok --> showwindow
7. und wieder zu 4.
-
aha Prinzip verstanden, geht aber trotzdem nicht :(:(
Jetzt hab' ich's so://WinMain: ShowWindow(hWnd_additem, SW_HIDE); UpdateWindow(hWnd_additem); //Fenster "A" //WM_COMMAND case ID_ADDITEM: { ShowWindow(hWnd_additem, SW_NORMAL); break; } //Fentser "B": //WM_COMMAND case IDCANCEL: //Programm schließen ( [×] ) { ShowWindow(hWnd_AddItem, SW_HIDE); break; }Geht nicht :(:(
-
EDIT: Hab mich verguckt

-
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) switch (message) { case WM_COMMAND: { switch(LOWORD(wParam)) { case ID_IRGENDWAS: { //Mach irgendwas break; } } break; } }Aber daran kanns doch nicht liegen, oder??
[edit]
masterofx32 schrieb:
EDIT: Hab mich verguckt

...
[/edit]
-
ein click auf das x zerstört dein fenster.
entweder den button deativieren
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/Windowing/windows/WindowReference/WindowStyles.asp
oder auf dialogboxen umsteigen, IMHO besser.
-
Das [×] Kommt sowiso wech. (Mache "WS_CAPTION" und mehr nicht)
ABER: Wenn ich ShowWindow() bei WM_COMMAND benutze, bzw irgendeine Andere Funktion (um das Fenster zu schließen) außer PostQuitMessage(0); tut sich garnichtsbsp.:
case ID_ADD: { AddItem(); //Funktioniert ShowWindow(hWnd_AddItem, SW_HIDE); //Wird nicht ausgeführt, bzw Fenster bleibt sichtbar break; }
-
hmm, und woher hast du dein hWnd_AddItem?
-
masterofx32 schrieb:
hmm, und woher hast du dein hWnd_AddItem?
mmmm ... Wende so fragst

hWnd_AddItem = CreateWindow(szAppNameAI, szAppName, WS_OVERLAPPEDWINDOW, 100, 120, 400, 195, NULL, NULL, hInstance, NULL);ABER
LRESULT CALLBACK WndProc_AddItem(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)ok, damit Fehler gefunden & gelöst

DANKE