Fenstertitel einer SDI-Anwendung mit CFormview verschwindet unter Win10



  • Ich habe eine SDI-Anwendung auf Basis eines CFormView erstellt. Die Anwendung arbeitet ab dem Start als maximiertes Fenster. Jetzt habe ich das Phänomen, dass unter Windows 10 der Fenstertitel (also Name der Anwendung und geöffnete Datei) verschwindet egal welchen Style man einstellt. Wird das Fenster etwas kleiner gezogen ist der Fenstertitel wieder da. Unter Windows 7 ist das nicht zu beobachten. Ist das bekannt und wenn ja wie bekommt man das weg?
    Ich muss dort Zusatzinformationen hinterlegen was sinnfrei ist wenn man erst das Fenster kleiner ziehen muss.



  • Habe noch herausgefunden, dass es sich auch bei CView so verhält. Noch eine Info: ich verwende eine Ribbonbar...



  • Wie maximierst du denn das Fenster (setzt du den Maximize-Status oder setzt du die Fenster-Größe auf die Desktopgröße)?



  • @Th69 sagte in Fenstertitel einer SDI-Anwendung mit CFormview verschwindet unter Win10:

    Wie maximierst du denn das Fenster (setzt du den Maximize-Status oder setzt du die Fenster-Größe auf die Desktopgröße)?

    Ich setzte des Maximize-Status.

    cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE
    		 | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_MAXIMIZE | WS_SYSMENU;
    

    Wenn man das Programm das allererste Mal startet steht der Titel oben drin. Sobald man den Stile ändert (hier wird meist Office 2007 Stil blau genommen) zeigt sich das von mir beschriebene Verhalten.



  • Könntest du testweise mal beim Umschalten der Stile den Maximize-Modus ausschalten und danach wieder aktiveren.
    Bleibt denn der Clientbereich des Fensters gleichgroß (das würde zumindestens erklären, warum der Titel dann außerhalb des Desktops angezeigt wird).



  • @Th69 sagte in Fenstertitel einer SDI-Anwendung mit CFormview verschwindet unter Win10:

    Könntest du testweise mal beim Umschalten der Stile den Maximize-Modus ausschalten und danach wieder aktiveren.
    Bleibt denn der Clientbereich des Fensters gleichgroß (das würde zumindestens erklären, warum der Titel dann außerhalb des Desktops angezeigt wird).

    Ich habe mal testweise das WS_MAXIMIZE weggelassen. Die Anwendung startet wie erwartet in reduzierter Größe. Beim Maximieren ist aber wieder der Fenstertitel weg. Ich hab das jetzt auch mal auf verschiedenen Rechnern mit verschiedenen Konfigurationen getestet. Das Verhalten ist überall gleich.



  • Mit welcher Visual Studio (sowie MFC) Version arbeitest du denn? Evtl. ist diese noch nicht Win10-kompatibel?

    Wo ist denn die Windows-Taskliste (ich nehme mal an, standardmäßig unten)? Kannst du diese mal ändern bzw. ausblenden (und danach noch mal dein Programm starten)?





  • Ich habe das Programm mit Visual Studio Professional 2015 (Version 14.0.25431.01 Update 3) sowie mit den Community Editionen von Visual Studio 2017 und 2019 probiert. Alle hatten einen aktuellen Updatestand. Getestet habe ich das auf Clients mit Windows 10 mit Update 1809 und 1903. Es zeigte sich immer das gleiche Verhalten. Legt man die Taskleiste nach links oder rechts oder blendet die komplett aus ändert sich gar nichts. Aber noch etwas: die Anwendung legt ja unter HKEY_CURRENT_USER\Software.... in der Registry ein paar Schlüssel ab, die u.U. auch das Layout steuern. Löscht man das gesamte Verzeichnis, dann funktioniert das so lange, bis der Style geändert wird. Belässt man diesen ist das Problem weg.



  • @Swordfish
    Vielen Dank, ich glaube das wird es sein. Das war mir so nicht bekannt. Eine Überschreibung der Zeichenmethode werde ich prüfen...



  • @Swordfish sagte in Fenstertitel einer SDI-Anwendung mit CFormview verschwindet unter Win10:

    MFC Application has invisible title when ribbon is used.

    Vielen Dank @Swordfish, dass war genau DER Hinweis. War mir aber so nicht klar. Man muss nur die DrawTextOnGlass von CMFCVisualManagerOffice2007 überschreiben und schon tut es wieder das was es soll.



  • 👍🏻


Log in to reply