Fenstergröße bei Programmstart maximieren



  • Ich möchte in einer SDI- Anwendung, daß die Dokumentansicht (Zeichenkontext)bei Programmstart in der vollen Ansicht erscheint. Trotzt aller Bemühungen ist mir das bisher nicht gelungen. Ich habe es so versucht:
    BOOL CSdiTestView::PreCreateWindow(CREATESTRUCT& cs)
    {
    // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
    // CREATESTRUCT cs modifizieren.
    cs.style = WS_MAXIMIZE;

    return CView::PreCreateWindow(cs);
    }

    Leider ohne Erfolg.
    Kann mir jemand hier einen Typ geben ?



  • !!! Suchfunktion benutzen !!!

    FullScreen MFC?



  • Hallo
    versuche es mal so:

    BOOL CDVD_ArchivApp::InitInstance()
    {
        AfxEnableControlContainer();
    
        // Standardinitialisierung
        // Wenn Sie diese Funktionen nicht nutzen und die Größe Ihrer fertigen 
        //  ausführbaren Datei reduzieren wollen, sollten Sie die nachfolgenden
        //  spezifischen Initialisierungsroutinen, die Sie nicht benötigen, entfernen.
    
    #ifdef _AFXDLL
        Enable3dControls();         // Diese Funktion bei Verwendung von MFC in gemeinsam genutzten DLLs aufrufen
    #else
        Enable3dControlsStatic();   // Diese Funktion bei statischen MFC-Anbindungen aufrufen
    #endif
    
        // Ändern des Registrierungsschlüssels, unter dem unsere Einstellungen gespeichert sind.
        // ZU ERLEDIGEN: Sie sollten dieser Zeichenfolge einen geeigneten Inhalt geben
        // wie z.B. den Namen Ihrer Firma oder Organisation.
        SetRegistryKey(_T("Local AppWizard-Generated Applications"));
    
        LoadStdProfileSettings();  // Standard INI-Dateioptionen laden (einschließlich MRU)
    
        // Dokumentvorlagen der Anwendung registrieren. Dokumentvorlagen
        //  dienen als Verbindung zwischen Dokumenten, Rahmenfenstern und Ansichten.
    
        CSingleDocTemplate* pDocTemplate;
        pDocTemplate = new CSingleDocTemplate(
            IDR_MAINFRAME,
            RUNTIME_CLASS(CDVD_ArchivDoc),
            RUNTIME_CLASS(CMainFrame),       // Haupt-SDI-Rahmenfenster
            RUNTIME_CLASS(CDVD_ArchivView));
        AddDocTemplate(pDocTemplate);
    
        // Befehlszeile parsen, um zu prüfen auf Standard-Umgebungsbefehle DDE, Datei offen
        CCommandLineInfo cmdInfo;
        ParseCommandLine(cmdInfo);
    
        // Verteilung der in der Befehlszeile angegebenen Befehle
        if (!ProcessShellCommand(cmdInfo))
            return FALSE;
    
        // Das einzige Fenster ist initialisiert und kann jetzt angezeigt und aktualisiert werden.
        m_pMainWnd->ShowWindow(SW_MAXIMIZE); //<-- Da wird die grösse festgelegt.
        m_pMainWnd->UpdateWindow();
    
        return TRUE;
    


  • Vielen Dank für Eure Antworten. Ich bin immer wieder überrascht, vieviel unterschiedliche Lösungen es zu einem Problem geben kann! Ich habe noch eine andere Möglichkeit entdeckt :
    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    // ZU ERLEDIGEN: Ändern Sie hier die Fensterklasse oder das Erscheinungsbild, indem Sie
    // CREATESTRUCT cs modifizieren.
    cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;

    cs.cy = ::GetSystemMetrics(SM_CYSCREEN) ;
    cs.cx = ::GetSystemMetrics(SM_CXSCREEN) ;

    cs.x=0;
    cs.y=0;

    //siehe Hilfe : stile / Rahmenfenster
    return TRUE;
    }



  • @Erich
    Daher der Spruch:
    "Viele Wege führen nach Rom!"


Anmelden zum Antworten