Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Child Window schließen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
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);
}
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.02.2009, 23:49 Uhr
tobZel



mach das postquitmessage in der childproc weg
--
Wer länger lebt stirb früher...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
12.02.2009, 16:55 Uhr
öni



Danke das hab ich gesucht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: