0

我试图为旧的袖珍电脑应用程序制作一个简单的程序。

希望它在我使用按钮时获得时间并显示它。

使用下面的代码,我得到两个编译器错误:

error C2664: 'SetWindowTextW' : cannot convert parameter 1 from 'int' to 'HWND' Line: 201
error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [7]' to 'LPCWSTR'  Line: 233

我试过搜索,这似乎是一个常见的误解,但我看不到适合的解释..

_strdate( dateStr);
SetWindowText(1003, dateStr);

还有这个:

hwndLabel = CreateWindow("STATIC","Time",
        WS_VISIBLE | WS_CHILD | SS_RIGHT,
        10,200,75,35,hWnd,NULL,1003,NULL);

编辑:

在 Xearinox 的建议之后,我得到了三个新的故障。

这些:

error C2664: '_wstrdate' : cannot convert parameter 1 from 'char [9]' to 'wchar_t *'    199
error C2664: 'SetDlgItemTextW' : cannot convert parameter 3 from 'char [9]' to 'LPCWSTR'    201
error C2440: '=' : cannot convert from 'HWND' to 'int'  233

如果我从静态中删除(HMENU),我会得到另一个最后一个错误:

error C2664: 'CreateWindowExW' : cannot convert parameter 10 from 'int' to 'HMENU'  233
4

1 回答 1

1

SetWindowText的第一个参数是 hwnd,而不是控件标识符。尝试这个:

SetDlgItemTextW(hWnd, 1003, dateStr);

将其用于检索日期:

WCHAR dateStr[256] = {0};
_wstrdate(dateStr);

还为 CreateWindow 使用宽字符串参数:

hwndLabel = CreateWindowW(L"STATIC",L"Time",
        WS_VISIBLE | WS_CHILD | SS_RIGHT,
        10,200,75,35,hWnd, (HMENU)1003, NULL, NULL);
于 2013-08-14T14:22:35.613 回答