Ich erstelle eine MFC C++ - Anwendung mit "Unicode-Zeichensatz verwenden" in Visual Studio ausgewählt. Ich habe UNICODE definiert, meine CStrings sind 16-Bit, ich handle Dateinamen mit japanischen Zeichen, usw. Aber wenn ich Unicode-Strings mit japanischen Zeichen in eine CComboBox (mit AddString) setze, erscheinen sie als ????? .Wie erkennt Windows Nicht-Unicode-Anwendungen?
Ich verwende Windows XP Professional x64 (in Englisch). Wenn ich die Regions- und Sprachoptionen der Windows-Systemsteuerung, die Registerkarte "Erweitert" und die Sprache für Nicht-Unicode-Programme auf Japanisch setze, sieht mein Kombinationsfeld richtig aus.
Also, ich möchte mein Kombinationsfeld richtig aussehen, und ich möchte verstehen, warum die Einstellung "Sprache für Nicht-Unicode-Programme" das Verhalten meines Unicode-Programms ändert. Gibt es noch etwas, was ich tun sollte, um Windows zu sagen, dass meine Anwendung eine Unicode-Anwendung ist?
Vielen Dank für jede Hilfe!
Danke, Mark. Ich habe die "Sprache für Nicht-Unicode-Programme" wieder auf Englisch geändert, aber meine CComboBox sieht immer noch richtig aus! Ich denke, der Schalter installiert eine größere Systemschrift, die zurückgelassen wurde, wenn ich zurück nach Englisch ging. Vielleicht haben Sie das mit "Standard-UI-Schriftart" gemeint? Ich kann keine anderen Verweise auf eine "Standard-UI-Schriftart" hier oder auf MSDN finden. –
Die Schriftart "MS Shell Dlg", die in MFC verwandt wird, ist in Wirklichkeit eine Zuordnung zu der Standardschriftart Benutzeroberfläche des Betriebssystems. In diesem Artikel finden Sie weitere Informationen: http://support.microsoft.com/?scid=kb;en-us;282187&x=11&y=13 – djeidot