899599 发表于 2018-5-3 21:45:23

关于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:03

前面加上::试试

899599 发表于 2018-5-3 22:20:27

BngThea 发表于 2018-5-3 22:02
前面加上::试试

你好,感谢你的帮忙,我试过了,也不行。{:10_284:}

ba21 发表于 2018-5-3 22:37:01

CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")

测试只能用英文

可能是你带了数字的原因

899599 发表于 2018-5-3 22:39:04

ba21 发表于 2018-5-3 22:37
CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")

测试只能用英文


哇,大佬,还真行,多谢多谢。长见识了。666

899599 发表于 2018-5-3 22:50:38

ba21 发表于 2018-5-3 22:37
CreateWindow(TEXT("button") 不是 CreateWindow(TEXT("BUTTON1")

测试只能用英文


我搞懂了,原来类名有规定,我太肤浅了,多谢。
页: [1]
查看完整版本: 关于CreateWindow创建控件失败的提问