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 !!!
-
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!"