我得到了一个简单的函数,其定义如下:
void addEndText(HWND hEdit, LPCWSTR newText)
{
int TextLen = SendMessage(hEdit, WM_GETTEXTLENGTH, 0, 0);
SendMessage(hEdit, EM_SETSEL, (WPARAM)TextLen, (LPARAM)TextLen);
SendMessage(hEdit, EM_REPLACESEL, FALSE, (LPARAM)newText);
}
当我以这种方式打电话时:
addEndText(editHandler1, L"TEST TEXT")
一切似乎都很好并且工作正常。但是当我这么做的时候
就这样:
addEndText(editHandler1, (LPCWSTR)buff)
其中buff是char数组,在我的编辑框中出现奇怪的字符而不是buff中的字符。我知道这是因为编码架构。但我不知道如何让它发挥作用。谢谢你的回复
答案 0 :(得分:0)
假设buff
是char[]
或char*
,您不能简单地将其输入LPCWSTR
(即const wchar_t*
)。您必须将其数据从char
转换为wchar_t
,例如MultiByteToWideChar()
。