Autor Beitrag
georgeboy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 08:45 
Hallo zusammen, folgende Frage, wenn ich unter VS 2010 ( zugegeben alt ) eine C++ MFC MDI Anwendung mit CEditView als Child-Fenster-Klasse einrichte, dann sehe ich nach dem Starten der Anwendung keine Möglichkeit die Child-Fenster zu minimieren, bei VS 2008 hatte jedes Child-Fenster rechts oben die üblichen drei Schaltflächen. Habe ich die Möglichkeit, diese Flächen anzeigen zu lassen? Sonst müsste ich wohl, einen Menüeintrag im Rahmenfenster einbauen.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 11:16 
Folgender Code geht nicht, das aktuelle Child-Fenster ist immer noch maximiert, und erscheint unten "minimiert".

ausblenden C++-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
void CMainFrame::OnAnsichtMinimieren()
{
  // TODO: Fügen Sie hier Ihren Befehlsbehandlungscode ein.
  //MessageBox(L"Hallo ...", 0, 0);
  WINDOWPLACEMENT wpl;
  BOOL b;
  CMDIChildWnd* cwnd = MDIGetActive(&b);
  cwnd->GetWindowPlacement(&wpl);
  wpl.showCmd = SW_SHOWMINIMIZED;
  cwnd->SetWindowPlacement(&wpl);
}
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 14.02.24 11:33 
Die Fenster einer MDI-Anwendung sollten vom Typ CMDIChildWnd sein, mit CEditView als View (Subcontrol).

Kannst auch mal das MDI-Beispiel VC2010Samples/MFC/general/mdidocvw bei dir ausprobieren.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 11:47 
Das Test-Projekt wurde als C++ MDI Anwendung, mit CEditView als "Child-Klassen-Typ" angelegt, die Typen stimmen alle. Dein Beispiellink konnte ich leider nicht verwenden.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 14.02.24 11:57 
Wieso konntest du das Beispielprojekt "nicht verwenden"?
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 14:47 
Bei dem Beispiel, habe ich keine Funktion gesehen, wie man per Menübefehl das aktuelle Child-Fenster minimiert. Ob da noch aufgrund von gesetzten Eigenschaften die Schaltflächen angezeigt werden, da habe ich nichts gesehen. Meine Bücher reichen eben nur bis VC++ 6.0. Es gibt über die C++ MFC Neuerungen leider keine Literatur. Und was ich gesehen habe, gibt es dieses Problem auch bei VS 2019/2020 ( bin mir nicht ganz sicher ). Keine Möglichkeit die Kind-Fenster zu minimieren. C# .NET ist gegenüber C++ MFC eben ganz was anderes, man muss nicht an der einen oder anderen Ecke etwas flicken, gottseidank gibt es C# .NET.
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 15:54 
So jetzt muss ich mich entschuldigen. Bei der Anlage des Projekts kann man "Klassisches Menü verwenden" auswählen. Dann erscheinen die Flächen rechts oben. Aber leider werden bei den Texteinträgen, bei den minimierten Fenstern unten, nur die zwei ersten Buchstaben angezeigt, für mich nicht brauchbar. Ob Du da auf die Schnelle was weist?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 14.02.24 17:56 
Bei meinen MDI-Projekten (C++ VCL und C# .NET) werden auch nur 5 Zeichen bei den minimierten Fenstern angezeigt (weil noch links das Icon und rechts die 3 Buttons angezeigt werden) - ich kenne auch keine Möglichkeit die Breite des minimierten Fensters zu ändern.

Hast du denn evtl. eine größere Schriftgröße oder eine Skalierung (in den Windows-Einstellungen) eingestellt?

Edit:
Es ist wohl systemweit möglich die Breite zu ändern, s. Top-Antwort in Is it possible to change size of minimized window in MDI [C# Winforms] (also mittels SystemParametersInfo(SPI_SETMINIMIZEDMETRICS, ...)).
georgeboy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 202



BeitragVerfasst: Mi 14.02.24 18:10 
Danke Dir Th69 !