使用变量在编辑框中设置文本

时间:2014-05-25 22:46:41

标签: winapi unicode sendmessage

我得到了一个简单的函数,其定义如下:

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中的字符。我知道这是因为编码架构。但我不知道如何让它发挥作用。谢谢你的回复

1 个答案:

答案 0 :(得分:0)

假设buffchar[]char*,您不能简单地将其输入LPCWSTR(即const wchar_t*)。您必须将其数据从char转换为wchar_t,例如MultiByteToWideChar()