CEdit Unicode
-
Ich lese Unicode aus einem Textfile aus und speichere den Text in einem CString Objekt. In einer Messagebox kann ich den Text ausgeben und er wird korrekt dargestellt. In einer CEdit box werden statt den Unicode zeichen nur ? oder | ausgegeben.
Freue mich über jede Hilfe,
Christian
-
Die MessageBox des Systems verwendet einen sogenannten "mapped Font", der bei Windows XP "Tahoma" entspricht.
Im Dialog wird im allgemeinen "MS Sans Serif" verwendet, der manche Unicode-Zeichen nicht darstellen kann. Tahoma kann zwar auch nicht alle, aber auf jeden Fall mehr.
Deinen Dialog auf Tahoma umzustellen ist keine gute Idee, weil dieser Font bei älteren Windows-Versionen noch fehlt.
Am benutzt man bei Unicode-Programmen auch Fontmapping, dann wird auf jedem System der beste Font ausgewählt:
- Visual Studio beenden
- Backup vom Projekt machen
- Die .rc-Datei mit einem Texteditor öffnen
- Dialoge suchen und im Header den Font durch "MS Shell Dlg" ersetzten und den Style MS_FIXEDSYS hinzufügen.
Also ausIDD_EXPORT_GLOSSARIES DIALOGEX 0, 0, 300, 201 STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_CONTEXTHELP CAPTION "Mein Dialog" FONT 8, "MS Sans Serif", 0, 0, 0x1 BEGIN ...
mach
[cpp]IDD_EXPORT_GLOSSARIES DIALOGEX 0, 0, 300, 201
STYLE DS_MODALFRAME | DS_CONTEXTHELP | WS_POPUP | WS_CAPTION | WS_SYSMENU | DS_FIXEDSYS
EXSTYLE WS_EX_CONTEXTHELP
CAPTION "Mein Dialog"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
...[/cpp]Näheres findest du in der MSDN.