为什么setwindowtext失败

请问为什么我setwindowtext一直失败,但下方的messagebox又能弹出。加粗的是自己写的。其他的都是系统默认的

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
HWND button1 = NULL;
switch (message)
{
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;
        **case IDB_BUTTON1:
            if (SetWindowTextA(button1, "yijinganxia") == 0)
                MessageBox(hWnd, "文本设置失败", "info", IDOK); break;**
        default:
            return DefWindowProc(hWnd, message, wParam, lParam);
        }
    }
    break;
case WM_PAINT:
    {
        PAINTSTRUCT ps;
        HDC hdc = BeginPaint(hWnd, &ps);

        EndPaint(hWnd, &ps);
    }
    break;
case WM_DESTROY:
    PostQuitMessage(0);
    break;
    **case WM_CREATE:
{
    button1 = CreateWindow("Button", "button 1", BS_PUSHBUTTON | WS_VISIBLE | WS_CHILD,
        400, 80, 100, 65, hWnd, (HMENU)IDB_BUTTON1, hInst, NULL);
}break;**
default:
    return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;

}

https://blog.csdn.net/sayhitrue/article/details/49616705?utm_source=blogxgwz6