我希望使用win32将字符数组中的字符显示在窗口上。第二个参数类型错误。我怎么解决这个问题?感谢
char data[5]="hello";
CreateWindow(TEXT("STATIC"), TEXT(data), WS_VISIBLE | WS_CHILD |
WS_BORDER|ES_AUTOVSCROLL,
10, 50,300,300,hWnd, (HMENU) none, NULL, NULL);
答案 0 :(得分:5)
const TCHAR* data = TEXT("hello"); // LPCTSTR
CreateWindow(TEXT("STATIC"), data, WS_VISIBLE | WS_CHILD |
WS_BORDER|ES_AUTOVSCROLL,
10, 50,300,300,hWnd, (HMENU) none, NULL, NULL);
您的代码未以Unicode配置编译。使用通用TCHAR类型可以解决问题。
另一种方法,如果数据为char*
,则使用ATL转换宏(http://msdn.microsoft.com/en-us/library/87zae4a3.aspx):
#include <atlstr.h>
const char* data = "hello";
CreateWindow(TEXT("STATIC"), CA2T(data), WS_VISIBLE | WS_CHILD |
WS_BORDER|ES_AUTOVSCROLL,
10, 50,300,300,hWnd, (HMENU) none, NULL, NULL);
最后,为了完整起见,您可以明确地调用ANSI API版本:
const char* data = "hello";
CreateWindowA("STATIC", data, WS_VISIBLE | WS_CHILD |
WS_BORDER|ES_AUTOVSCROLL,
10, 50,300,300,hWnd, (HMENU) none, NULL, NULL);