Warum DestroyWindow schließen meiner Anwendung?

I ' V erstellt ein Fenster nach dem erstellen mein Haupt, aber den Aufruf DestroyWindow auf das handle schließt die gesamte Anwendung, wie kann ich einfach entfernen?

sieht es wie folgt aus:

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
   HWND hWnd;
   HWND fakehandle;


   hInst = hInstance; //Store instance handle in our global variable

   hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW | WS_EX_LAYERED,
      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   fakehandle = CreateWindow(szWindowClass, "FAKE WINDOW", WS_OVERLAPPEDWINDOW,
       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

   if (!hWnd || !fakehandle)
   {
      return FALSE;
   }
//some code
   DestroyWindow(fakehandle);


   ShowWindow(hWnd, nCmdShow);
   UpdateWindow(hWnd);

   return TRUE;
}

wie kann ich Zerstöre dieses Fenster, ohne Sie zu zerstören mein main ein? Ich erstelle ein dummy-Fenster zum überprüfen für multisampling in OpenGL.

Dank

  • Haben Sie überprüft, dass hWnd und fakehandle unterschiedlich sind?
  • ja, Sie sind unterschiedlich, je nach den debugger...
  • Meine nicht, Sie zu kritisieren, wie ich bin sicher, Sie haben einen guten Grund. Justo wollen, um zu erfahren, warum Sie zu entwickeln, wäre eine windows-app-Petzold-Stil?
  • Ich will nicht auf den zweiten-denke, die poster, aber wenn die app macht alles mit OpenGL dann noch etwas klüger ist als einfache Win32-overkill. Alles, was Sie brauchen, ist ein HWND (bestätigt, dass das update rect auf jeden WM_PAINT Beiträge und eine quit-Nachricht auf WM_CLOSE), und ein polling message-loop. Sobald Sie haben, dass Sie gesetzt sind, und Sie können es vergessen. Etwas mehr Phantasie vorstellen können zusätzliche Abhängigkeiten und/oder machen Dinge schwieriger insgesamt.
  • Einfache Win32-kann mehr lesbar, dann mit MFC.
InformationsquelleAutor jmasterx | 2010-05-25
Schreibe einen Kommentar