problem beim maximieren bei MDI



  • Hi
    Also ich habe folgendes problem:
    Ich habe ein MDI mit childwindows und nun möchte ich das das parentwindow maximiert gestartet wird.
    Das hab ich dann so gemacht:

    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
    {
         HWND     hwnd, hwndFrame ;
         MSG      msg ;
         WNDCLASS wndclass ;
    
         hInst = hInstance ;
    
         //Hauptfenster
         wndclass.style         = CS_HREDRAW | CS_VREDRAW ;
         wndclass.lpfnWndProc   = WndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = 0 ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) (COLOR_APPWORKSPACE + 1) ;
         wndclass.lpszMenuName  = NULL ;
         wndclass.lpszClassName = szFrameClass ;
    
         if (!RegisterClass (&wndclass))
    
         //Kindfenster
         wndclass.style         = CS_HREDRAW | CS_VREDRAW;
         wndclass.lpfnWndProc   = HelloWndProc ;
         wndclass.cbClsExtra    = 0 ;
         wndclass.cbWndExtra    = sizeof (HANDLE) ;
         wndclass.hInstance     = hInstance ;
         wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION) ;
         wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
         wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;
         wndclass.lpszMenuName  = NULL ;
         wndclass.lpszClassName = szHelloClass;
    
         RegisterClass (&wndclass) ;
    
         hMenuInit  = LoadMenu (hInstance, TEXT ("MAINMENU")) ;
         hMenuHello = LoadMenu (hInstance, TEXT ("MAINMENU")) ;
    
         hMenuInitWindow  = GetSubMenu (hMenuInit,   INIT_MENU_POS) ;
         hMenuHelloWindow = GetSubMenu (hMenuHello, HELLO_MENU_POS) ;
    
       hwnd = CreateWindow (szFrameClass, TEXT ("osIRC v1.0"),
                                   WS_MAXIMIZE | WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
                                   CW_USEDEFAULT, CW_USEDEFAULT,
                                   CW_USEDEFAULT, CW_USEDEFAULT,
                                   NULL, hMenuInit, hInstance, NULL) ;
    
         ShowWindow(hwnd, SW_MAXIMIZE);    // das hier sollte das fenster maximieren
    
         hwndFrame = GetWindow (hwnd, GW_CHILD) ;
    
         ShowWindow (hwnd, iCmdShow) ;
         UpdateWindow (hwnd) ;
    
         while (GetMessage (&msg, NULL, 0, 0))
         {
              if (!TranslateMDISysAccel (hwndFrame, &msg))
              {
                   TranslateMessage (&msg) ;
                   DispatchMessage (&msg) ;
              }
         }
         DestroyMenu (hMenuHello) ;
         return msg.wParam ;
    }
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message,  WPARAM wParam, LPARAM lParam)
    {
    
         switch (message)
         {
         case WM_CREATE:           
    
              //Rahmenfenster
              clientcreate.hWindowMenu  = hMenuInitWindow ;
              clientcreate.idFirstChild = IDM_FIRSTCHILD ;
    
              hwndFrame = CreateWindow (TEXT ("MDICLIENT"), NULL,
                                         WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE,
                                         0, 0, 0, 0, hwnd, (HMENU) 1, hInst,
                                         &clientcreate) ;               
                       ShowWindow(hwnd, SW_MAXIMIZE);  //und das hier sollte den rahmen maximieren  
              return 0;
    

    so jetzt startet er das programm auch maximiert, aber man kann es nun nicht mehr verkleinern. Also wenn man auf den mittleren button oben rechts klickt.


Anmelden zum Antworten