Announcement

Collapse
No announcement yet.

kein Fenster

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • kein Fenster

    hi,

    ich wollte mal ein Programm in VC++ schreiben habe auch ein buch wo alles erklärt wird aber es wird kein fenster angezeigt nur der Prozess läuft im Hintergrund. Ich verwende den Visual C++ compiler version 6 unter Windows XP Sp 2 bulid 2180. Kann mir jemand helfen?

    Hier der Quell Code:
    <PRE>
    #include <windows.h>

    #define WindowTitel "DirectDraw-Tutorial"
    #define WindowClassName "DDWinClass"

    LONG FAR WINAPI WndProc (HWND , UINT, UINT, LONG);

    int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
    {
    MSG msg;
    HWND hwnd;
    WNDCLASS wndclass;
    bool test = false;

    if(!hPrevInstance)
    {
    wndclass.style = CS_HREDRAW | CS_VREDRAW ;
    wndclass.lpfnWndProc = WndProc;
    wndclass.cbClsExtra = 0;
    wndclass.hInstance = hInstance ;
    wndclass.hIcon = LoadIcon (NULL , IDI_APPLICATION) ;
    wndclass.hCursor = LoadCursor (NULL , IDC_ARROW) ;
    wndclass.hbrBackground = (HBRUSH)GetStockObject (LTGRAY_BRUSH) ;
    wndclass.lpszMenuName = NULL ;
    wndclass.lpszClassName = WindowClassName ;
    RegisterClass (&wndclass) ;
    }

    hwnd = CreateWindow (WindowClassName , WindowTitel , WS_OVERLAPPEDWINDOW ,0 ,0 ,
    400 ,400 ,NULL , NULL ,hInstance , NULL) ;

    test = ShowWindow(hwnd , nCmdShow) ;

    UpdateWindow (hwnd) ;

    while(1)
    {
    if (GetMessage(&msg,NULL,0,0))
    {
    DispatchMessage(&msg);
    }
    }

    return msg.wParam ;
    } // WinMain

    LONG FAR WINAPI WndProc (HWND hwnd , UINT message ,
    UINT wParam , LONG lParam)
    {
    switch (message)
    {
    case WM_DESTROY:
    {
    PostQuitMessage (0) ;
    return 0 ;
    } break;
    } // switch (message)
    return DefWindowProc (hwnd , message , wParam , lParam) ;
    } // WndProc
    </PRE>

  • #2
    hi Stephan Hager,<p>

    die struct wndclass musst du mit 0 initialisieren.<p>

    WNDCLASS wndclass = {0};<p>

    gruss ro

    Comment


    • #3
      ... oder du belegst <b>alle</b> elemente der struct mit einem wert.<br>
      also in deinem bsp. wuerde noch cbWndExtra fehlen ( wndclass.cbWndExtra = NULL; ).<p>
      und die erzeugung des callbacks sieht normalerweisse so aus:<p>
      <pre>
      while (GetMessage(&msg,NULL,0,0))
      {
      TranslateMessage(&msg);
      DispatchMessage(&msg);
      }
      return msg.wParam ;
      </pre><p>
      das fiel mir jetzt noch auf, weil das fenster beim schliessen zwar geschlossen wurde, aber nicht der prozess beendet wurde.<p>
      gruss ro

      Comment

      Working...
      X