2016-07-12 21 views
2

Ich ändere eine Windows CE-Anwendung, um verschiedene Sprachen über Unicode anzuzeigen.Windows CE MessageBox zeigt Unicode-Text und Symbol Transparenz nicht an

Durch die Änderung der Schriftart auf der Ressource-Datei habe ich es geschafft, die in einer Schaltfläche angezeigt, aber es nicht erhalten, um "παρίσταταί" richtig in einer MessageBox anzuzeigen.

Das Ergebnis sieht wie folgt aus:

Should show "παρίσταταί"

fand ich eine Open-Source-XMessageBox Ersatz und bekam es in Windows CE mit einigen geringfügigen Änderungen zu arbeiten. Das Ergebnis ist dieses:

What happened to the icon background?

Mein Problem ist, aufgrund nicht in der Lage ist, um die Schriftart über eine Message Box Hook (nicht verfügbar in Win CE) habe ich die Schriftart auf „Arial Unicode MS“ in XMessageBox und der Text wird angezeigt, aber das Symbol ist nicht korrekt.

Wie bekomme ich die MessageBox, um eine andere Schriftart zu verwenden ODER Wie bekomme ich XMessageBox nicht einen transparenten ICON-Hintergrund zu haben?

Die Desktop-Version von XMessageBox kann here und ich habe GitHub Repo des Testprogramms für Sie auf den Code suchen gefunden werden - in der CUnicodeTestDlg :: OnInitDialog-Methode.

CStringW greekText(L"παρίσταταί"); 

    TheButton.SetWindowText(greekText ); 

    ::MessageBox(*this, 
      greekText, 
      L"Is this greek?", MB_YESNO | MB_ICONHAND); 

    XMessageBox(*this, 
      greekText, 
      L"Is this greek?", MB_YESNO | MB_ICONHAND); 

Bitte beachten Sie: „Arial Unicode MS“ muss auf dem Gerät oder Emulator für die XMessageBox den griechischen Text korrekt anzuzeigen installiert werden.

+0

Ich kann keinen Fehler in GitHub Code sehen, es ist wahrscheinlich etwas seltsam über Windows CE. Warum entfernst du nicht einfach das Icon? Diese Symbole sind riesig, es dauert etwa 1 MB für 4 Symbole. Überprüfen Sie auch, ob "Arial Uniocde MS" installiert ist. –

Antwort

0

Ich löste dies, indem ich ein Gerät mit dem entsprechenden nicht-englischen Betriebssystem installiert (was Japanisch und japanischen Text - nicht Griechisch) war. Auf diese Weise wird der Text korrekt angezeigt und die Schaltflächen auf der MessageBox befinden sich in der entsprechenden Sprache. Ich habe die Verwendung von XMessageBox entfernt und die Standard-Windows-API verwendet.