000
11.02.2009, 20:54 Uhr
öni
|
Ich hab mir 2 Fenster erstellt. Doch wenn ich nun das 2. Fenster, was eigentlich mein ChildWindow sein soll, schließe, dann schließt sich das Hauptfenster mit. Das möchte ich aber nicht so. Was muss ich ändern das das 2. Fenster unabhängig vom Haupfenster geschlossen werden kann?
Mein eigentliches Ziel ist es eine Eingabe im ChildWindow zu tätigen und nach der Eingabe sollte sich das Fenster wieder schließen, die Eingabe funktioniert nur wenn das eine Fenster geschlossen wird, schließt sich auch das andere.
C++: |
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK childWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { MSG msg ; HWND hwnd,chwnd; WNDCLASS wc,cwc; wc.style = CS_HREDRAW | CS_VREDRAW; wc.cbClsExtra = 0; wc.cbWndExtra = 0; wc.lpszClassName = TEXT( "Window" ); wc.hInstance = hInstance ; wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE); wc.lpszMenuName = NULL; wc.lpfnWndProc = WndProc; wc.hCursor = LoadCursor(NULL, IDC_ARROW); wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
RegisterClass(&wc); hwnd = CreateWindow( wc.lpszClassName, TEXT("Window"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 100, 100, 250, 150, NULL, NULL, hInstance, NULL);
ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd);
cwc.lpfnWndProc = childWndProc;
chwnd = CreateWindow( wc.lpszClassName, TEXT("2. fenster"), WS_OVERLAPPEDWINDOW | WS_VISIBLE, 150, 150, 250, 150, hwnd, NULL, hInstance, NULL);
ShowWindow(chwnd, nCmdShow); UpdateWindow(chwnd);
while( GetMessage(&msg, NULL, 0, 0)) { DispatchMessage(&msg); } return (int) msg.wParam; }
LRESULT CALLBACK WndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch(msg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hwnd, msg, wParam, lParam); }
LRESULT CALLBACK childWndProc( HWND chwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { switch(msg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(chwnd, msg, wParam, lParam); }
|
|