萌新学习win32,Setwindowtext失败

加粗为自己写的,其余是系统默认生成。setwindowtext一直失败返回0,但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;

}

下断点,看
case IDB_BUTTON1:
这里有没有执行到

if (SetWindowTextA(button1, "yijinganxia") == 0)
这里button1是不是按钮的handle,用spy++看看。