Meine Frage ergibt sich aus unserem Programm auf einem japanischen Betriebssystem ausgeführt. Einer meiner Mitarbeiter hat so etwas wie das Einbetten eines Eigenschaftsblatts in einen Dialog getan, und das Eigenschaftsblatt hat mehrere Seiten. Bei anderen Sprachen außer Japanisch funktioniert alles einwandfrei.Was ist die Standardschrift für Eigenschaftenblätter und Seiten?
Auf japanischen Systemen werden einige Steuerelemente abgeschnitten, weil nicht genügend Platz vorhanden ist. Ich habe festgestellt, dass dies darauf zurückzuführen ist, dass auf japanischen Systemen die vom Eigenschaftenfenster und damit von den Eigenschaftenseiten verwendete Schriftart von der im übergeordneten Dialogfeld des Eigenschaftenblattes verwendeten Schriftart abweicht. Für die Aufzeichnung der Schrift von der Mutter Dialog und alle Eigenschaftsseiten verwendet MS Shell Dlg, 8: eine einfache Lösung, um zu versuchen und zu verbessern das Problem für japanische und all mögliche System
FONT 8, "MS Shell Dlg", 0, 0, 0x1
ich wollte. Ich habe die Schriftarten auf japanischen Windows 7-Eigenschaftenblättern/-seiten untersucht, und sie wurden immer als Standard-GUI-Schrift erkannt. Als ich also mein erstes Dialogfeld erstellte, nachdem ich die DIALOGTEMPLATE mit der MFC-Klasse CDialogTemplate in den Speicher geladen hatte, änderte ich die Schriftart des übergeordneten Dialogfelds so, dass sie der Standard-GUI-Schriftart entsprach. -Window 7, das ist.
Ein Kunde hat jetzt festgestellt, dass dies keine gültige Lösung für Windows 8/8.1 ist - es zeigt das ursprüngliche Problem. Nach dem Überprüfen der Schriftarten auf einer Windows 8.1-VM habe ich festgestellt, dass das Eigenschaftsfenster unter Windows 8.1 und die untergeordneten Eigenschaftenseiten nicht die Standard-GUI-Schriftart verwenden.
Das sind viele Worte zu fragen. Gibt es eine Möglichkeit, die Standardschriftart zu bestimmen, die von den Eigenschaftenblättern auf einem Windows-System verwendet wird?
Ich denke, meine hässliche Problemumgehung wäre, ein Eigenschaftsblatt mit einer Eigenschaftsseite zu erstellen, die von diesem Eigenschaftsblatt und dieser Seite verwendete Schriftart zu bestimmen und dann die Dialogvorlage meines Elterndialogs zu ändern, um diese Schriftart zu verwenden. Da Eigenschaftsseiten einige Eigenarten der Aktivierung haben (sie werden bei der Erstellung aktiviert, selbst wenn sie unsichtbar sind), würde ich es lieber nicht tun, aber es scheint meine einzige Wahl zu sein - abgesehen davon, dass ich die Dialoge meiner Mitarbeiter überarbeitet habe.
Wenn möglich, erstellen/Ihre Dialoge in Ressourcen-Editor bearbeiten „Segoe UI“ Größe 9. Dies ist die Standardschriftart für Vista + zu verwenden. Es gibt kein Problem, wenn Sie sich nicht um WinXP sorgen. –
Fonts sind [kompliziert] (http://stackoverflow.com/a/6057761/5240004) Wenn Sie einen Testcomputer mit 8/8.1 mit dem installierten japanischen Sprachpaket haben, können Sie die Schriftart mit 'GetDC' und dem Fenster finden handle (wahrscheinlich das Elternfenster des Eigenschaftsfensters), dann 'GetTextFace', um den Namen der Schriftart zu erhalten, und' GetTextMetrics', um die Größeninformationen zu erhalten. (Angenommen, dass die Schriftart in diesem DC tatsächlich ausgewählt ist) – theB
@BarmakShemirani Die Standardschriftart, die von Visual Studio erstellt wird, und ich nehme von Windows an, ist "MS Shell Dlg" 8 Pt. In meiner US-Windows-7-Box ist dies die Schriftart, die zum Erstellen von Eigenschaftenblättern verwendet wird. Natürlich ist MS Shell Dlg eine Alias-Schriftart. In der Vergangenheit erinnere ich mich an Probleme mit japanischen Systemen, weil sie nicht immer Segoe UI haben. –