工程项目属性: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版本则不存在上述问题。