VC2008 使用setwindowrtextw 设置文本框 显示乱码

void MainDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT_B, mv_B);
DDV_MinMaxInt(pDX, mv_B, 0, 32767);
DDX_Control(pDX, IDC_EDIT_B, mc_B);

//Set text value
i = 5105;
sprintf( sForShow, "%d", i );
lp_ForSet = (LPCTSTR)(LPTSTR)sForShow;
//lp_ForSet = (LPCTSTR)sForShow;
mc_B.SetWindowTextW( lp_ForSet );
//Set text value.Done.
}

T\W\A 你搞不懂的就当作是三种类型,显示进行转换。你这里如果项目不是unicode的,LPCTSTR 就是 LPCSTR,这个是A版字符串,所以你把A强转W,显示乱码
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-02-01
应该是字符显示的问题。setwindowrtextw对应的应该是Unicode,查查你的设置。本回答被提问者采纳
第2个回答  2012-02-01
空间属性改成字符串,再看看字符集
第3个回答  2012-01-31
资源里语言设置你看看有没有问题
相似回答