关于CreateWindow创建控件失败的提问
求大神指点我今天学习CreateWindow来做控件,在学校的xp系统,用vs2010下可以创建成功。
但是下午在自己的笔记本(win10,vs2017)下写入同样的代码,但是运行程序的时候,控件却没有创建出来,之后下载了vs2010,然后也不行。
两个情况我都是在vs自动生成的代码下添加WM_CREATE和CreateWindow的代码。
上网查这个问题的时候,网上的大佬说的是返回值的问题。但是我的代码和网上的没不同,然后就用了一下午都不能解决问题。所以来求大神们指点。
代码如下(以下是WndProc函数的代码)
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
{
CreateWindow(TEXT("BUTTON1"), TEXT("PushButton(&A)"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 50, 30, 110, 30,
hWnd, (HMENU)IDC_BUTTON1, ((LPCREATESTRUCT)lParam)->hInstance, NULL);
return TRUE;
}
case WM_COMMAND:
{
int wmId = LOWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
return 0;
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: 在此处添加使用 hdc 的任何绘图代码...
TextOut(hdc,500,500, "12315", 5);
EndPaint(hWnd, &ps);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return ::DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
求求大神们了。谢谢!
前面加上::试试 BngThea 发表于 2018-5-3 22:02
前面加上::试试
你好,感谢你的帮忙,我试过了,也不行。{:10_284:} CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")
测试只能用英文
可能是你带了数字的原因 ba21 发表于 2018-5-3 22:37
CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")
测试只能用英文
哇,大佬,还真行,多谢多谢。长见识了。666 ba21 发表于 2018-5-3 22:37
CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")
测试只能用英文
我搞懂了,原来类名有规定,我太肤浅了,多谢。
页:
[1]