2016-11-14 25 views
0

我可以看到特殊字符ąęį當我做靜態文本標籤上的表單設計:MFC對話框形式的特殊字符

enter image description here

這些性格改變,同時運行:

enter image description here

如果我以編程方式設置這些字符,我有:

enter image description here

如何確保顯示正確的字符而不是問號,如上面的屏幕截圖所示?

UPD:

我的項目是多字節。我發現在另一臺電腦上我可以看到特殊字符。爲什麼?

回答

2

您需要使用Unicode字符集才能正常工作,我的猜測是您現在正在使用MBCS字符集。

您可以在項目屬性中更改它。請參閱此屏幕截圖:enter image description here

Visual Studio編輯器完全是Unicode,這意味着它可以顯示您在設計對話框時鍵入的特殊字符。但是,如果您的應用程序不是由Unicode支持構建的,則它在運行時將無法顯示這些字符。這就是爲什麼你看到???在運行應用程序時替換Unicode文本。

+0

是的,我的項目是多字節,但我不想改變這一點,因爲我有很多編譯錯誤。我發現在另一臺電腦上我可以看到特殊字符。爲什麼? – vico

+0

我知道您在移植到Unicode時可能會遇到一些問題,但請隨時在此處尋求幫助以解決這些問題。這裏有一個可能讓你開始的指南:https://msdn.microsoft.com/en-us/library/cc194801.aspx –

+0

如果你不想把項目改爲Unicode,那麼把':: SetDlgItemTextW(m_hWnd, IDC_STATIC_X,L「ąę」)'在* .cpp代碼中,作爲補丁... –

0

如果您在不同的計算機上得到不同的結果,這顯然是由於系統設置的差異。

控制此設置的設置稱爲「非Unicode程序的語言」,可在控制面板,語言,更改日期,時間或數字格式下找到。不幸的是它是一個全局設置(即不能根據應用程序或編程設置)並需要重新啓動。

考慮如果可能的話(和有意義的成本或努力方面)使您的應用程序Unicode。