win32 GUI在窗口中显示char数组变量的文本

时间:2014-03-03 10:18:37

标签: c++ windows winapi user-interface

我希望使用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);

1 个答案:

答案 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);