win32 GUI 在窗口中显示来自字符数组变量的文本

win32 GUI display text from char array variable in window

本文关键字:数组 字符 变量 文本 GUI 窗口 显示 win32      更新时间:2023-10-16

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