我使用DialogBox API在我的應用程序中顯示對話框。在DLGPROC過程回調的WM_INITDIALOG消息處理中,我可以在調試器中看到文本字符串是正確的Unicode,並且SetDlgItemText用於在對話框中設置Rich Edit控件上的文本。但是,當我試圖通過使用GetDlgItemText API從對話框中獲取文本時,這些字符都是問號。無法在Windows對話框中顯示其他的unicode東亞語言對話框
我的項目被編譯爲Unicode。我也使用了spy ++,它顯示Windows Proc是Unicode。
我使用英文語言環境在Windows 7上測試中文,所以我也爲我的機器安裝了中文語言包,但它也沒有幫助。
我無法解釋我在這裏看到的。如果任何人能夠闡明這一點或如何進一步調試,那將是值得讚賞的。
Unicode和TCHAR是一個地獄,你可以用'wchar_t'而不是'GetFlgItemText'和TCHAR來試用'GetFlgItemTextW'嗎?也許一些設置導致你的程序使用ANSI版本的功能和從Unicode到ANSI的轉換是你的錯誤的來源 – BigBoss
我想出了原因,這是RichEdit控件問題,它似乎沒有默認使用unicode。我會添加更多關於答案的信息。 – windfly2006