工程項目屬性:html
字符集:多字節函數
stdafx.h文件中添加:3d
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
注意:若是多字節版本下不添加上述代碼,則編輯框不能正常顯示vật huyền,部分字符顯示亂碼。htm
一樣的三個編輯框控件,分別輸入:vật huyềnblog
其中第二個編輯框綁定到MFC控件CEdit:get
DDX_Control(pDX, IDC_EDIT2, m_edit2);
程序運行後,分別用spy++獲取編輯框文本,第一個和第三個都顯示正常:it
第二個編輯框的文本獲取到的爲亂碼:io
問題產生緣由:class
第一和第三個編輯框控件的消息流程走的是默認機制,不存在字符集轉換的bug。而第二個編輯框控件走的是MFC消息機制,在處理WM_GETTEXT消息時存在字符集轉換BUG。亂碼
相關例子見:《【反外掛】重載WM_GETTEXT消息處理函數使spy++沒法獲取窗口文本》:http://www.cnblogs.com/daxingxing/archive/2012/06/14/2549279.html
注意:項目若是是UNICODE版本則不存在上述問題。