我正在使用Visual Studio 2013上的Win32应用程序构造一个程序。从已阅读的教程中,我知道以下代码是正确的,但是我不知道在何处更改参数类型以读取以下内容:
case WM_CREATE:
{
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "Edit", "",
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL |
ES_AUTOVSCROLL, 50, 100, 300, 300, hWnd, (HMENU)IDC_EDIT_BOX,
NULL, NULL);
编译器突出显示“编辑”,并给我这个错误:
最佳答案
您正在使用UNICODE
进行定义。这意味着CreateWindowEx
是宽字符版本CreateWindowExW
的别名。要么:
CreateWindowExA
或就个人而言,我建议选择1。您的代码将变为:
CreateWindowEx(WS_EX_CLIENTEDGE, L"Edit", L"",
WS_CHILD | WS_VISIBLE | ES_MULTILINE | ES_AUTOHSCROLL | ES_AUTOVSCROLL,
50, 100, 300, 300, hWnd, (HMENU)IDC_EDIT_BOX, NULL, NULL);
字符串文字的
L
前缀用于指定宽字符文字。关于c++ - Win32应用程序编程C++,参数类型为LPCWSTR的错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21864210/