增加按钮控件之后,无法输入字符

问题遇到的现象和发生背景

无法输入字符

问题相关代码,请勿粘贴截图
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
    static HFONT hFont;//逻辑字体
    static HWND hBtn;
    static HWND hStatic;
    static HWND Start;
    static HWND Stop;
    static HWND Continue;
    static HWND Restart; 
    //一组单选按钮
    static HWND hGroupSex;  //静态文本框--性别
    static HWND hRadio1;    //单选按钮--简单
    static HWND hRadio2;    //单选按钮--中等
    static HWND hRadio3;    //单选按钮--困难
    static HWND hRadio4;    //单选按钮--炼狱
    switch (message)
    {
    
    case WM_TIMER:                                                  //增加定时器消息处理
        switch (wParam)
        {
        case 1:                                                     //接受定时器1消息,字母下落
            y = y + velocity + 1;                              //根据当前分数计算下落速度
            if (y > bottom - 40)                                    //判断是否落地
            {
                gameover = 1;                                       //游戏结束
                KillTimer(hWnd,1);                                  //关掉字母下落定时器1
                SetTimer(hWnd, 2, 300, NULL);                       //建立显示“游戏结束!”的定时器2
            }
            InvalidateRect(hWnd, 0, 0);                             //刷新画面
           
            break;
        case 2:                                                     //接到定时器2消息,显示“游戏结束!”动画效果
            InvalidateRect(hWnd, 0, 0);                             //刷新画面
            break;
        case 3:                                                     //接受定时器3消息,游戏开始计时
            if (gameover == 1)                                      //判断游戏是否结束,若结束,暂停计时                
                KillTimer(hWnd, 3);                                 //关闭计时定时器3
            s++;                                                    //时间更新
            if (s == 60)                                            //时间换算
            {
                s = 0;
                m++;
            }
            if (m == 60)
            {
                m = 0;
                h++;
            }
        }
        break;
    case WM_CHAR:                                                   //增加键盘输入消息处理
    {
        c2 = (wParam >= 'a' && wParam <= 'z') ? wParam + 'A' - 'a' : wParam;   //按键
        HDC hdc = GetDC(hWnd);
        Fire(hdc, left + 5 + (c2 - 'A') * 9 + 4, top, bottom);      //显示射击效果
        ReleaseDC(hWnd, hdc);
        if (c2 == c1)                                               //判断是否击中
        {
            c1 = rand() % 26 + 'A';                                 //产生新下落字母
            x = left + 5 + (c1 - 'A') * 9;                          //计算下落初始x坐标
            y = top;                                                //计算下落初始y坐标
            iScoring = iScoring + 1;                                //分数+1
            CS = CS + 1;
            if(CS>=MaxShot)
                MaxShot = CS;           
        }
        else
        {
            CS = 0;
            iFail = iFail + 1;                                      //未击中,记录
        }
    }
    break;
    case  WM_CREATE:
        //创建逻辑字体
        hFont = CreateFont(
            -15/*高度*/, -7.5/*宽度*/, 0, 0, 400 /*一般这个值设为400*/,
            FALSE/*不带斜体*/, FALSE/*不带下划线*/, FALSE/*不带删除线*/,
            DEFAULT_CHARSET,  //使用默认字符集
            OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS,  //这行参数不用管
            DEFAULT_QUALITY,  //默认输出质量
            FF_DONTCARE,  //不指定字体族*/
            TEXT("微软雅黑")  //字体名
        );
        //创建按钮控件
        Start = CreateWindow(
            TEXT("button"), //按钮控件的类名
            TEXT("开始"),
            WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
            95 /*X坐标*/, 550 /*Y坐标*/, 50 /*宽度*/, 50/*高度*/,
            hWnd, (HMENU)1 /*控件唯一标识符*/, hInst, NULL
        );
        Stop = CreateWindow(
            TEXT("button"), //按钮控件的类名
            TEXT("暂停"),
            WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
            165 /*X坐标*/, 550 /*Y坐标*/, 50 /*宽度*/, 50/*高度*/,
            hWnd, (HMENU)2 /*控件唯一标识符*/, hInst, NULL
        );
        Continue = CreateWindow(
            TEXT("button"), //按钮控件的类名
            TEXT("继续"),
            WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
            235 /*X坐标*/, 550 /*Y坐标*/, 50 /*宽度*/, 50/*高度*/,
            hWnd, (HMENU)3 /*控件唯一标识符*/, hInst, NULL
        );
        Restart = CreateWindow(
            TEXT("button"), //按钮控件的类名
            TEXT("重置"),
            WS_CHILD | WS_VISIBLE | WS_BORDER | BS_FLAT/*扁平样式*/,
            305 /*X坐标*/, 550 /*Y坐标*/, 50 /*宽度*/, 50/*高度*/,
            hWnd, (HMENU)4 /*控件唯一标识符*/, hInst, NULL
        );
        SendMessage(Start, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体
        SendMessage(Stop, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体
        SendMessage(Continue, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体
        SendMessage(Restart, WM_SETFONT, (WPARAM)hFont, NULL);//设置按钮字体


        //创建分组框控件
        hGroupSex = CreateWindow(
            TEXT("button"), TEXT("难度选择"),
            WS_CHILD | WS_VISIBLE | BS_GROUPBOX,
            90, 450, 300, 70,
            hWnd, (HMENU)5, hInst, NULL
        );
        //接下来添加单选按钮
        hRadio1 = CreateWindow(
            TEXT("button"), TEXT("简单"),
            WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,//单选按钮
            15, 30, 50, 26,
            hGroupSex, (HMENU)6, hInst, NULL//父窗口为 GroupBox 控件
        );
        hRadio2 = CreateWindow(
            TEXT("button"), TEXT("中等"),
            WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
            80, 30, 50, 26,
            hGroupSex, (HMENU)7, hInst, NULL
        );
        hRadio3 = CreateWindow(
            TEXT("button"), TEXT("困难"),
            WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
            145, 30, 50, 26,
            hGroupSex, (HMENU)8, hInst, NULL
        );
        hRadio4 = CreateWindow(
            TEXT("button"), TEXT("炼狱"),
            WS_CHILD | WS_VISIBLE | BS_LEFT | BS_AUTORADIOBUTTON,
            210, 30, 50, 26,
            hGroupSex, (HMENU)9, hInst, NULL
        );
        SendMessage(hGroupSex, WM_SETFONT, (WPARAM)hFont, NULL);
        SendMessage(hRadio1, WM_SETFONT, (WPARAM)hFont, NULL);
        SendMessage(hRadio2, WM_SETFONT, (WPARAM)hFont, NULL);
        SendMessage(hRadio3, WM_SETFONT, (WPARAM)hFont, NULL);
        SendMessage(hRadio4, WM_SETFONT, (WPARAM)hFont, NULL);
        break;
    case WM_COMMAND:                                                //处理键盘输入结束
        {
            int wmId = LOWORD(wParam);
            int wmEvent = HIWORD(wParam);
            // 分析菜单选择:
            switch (wmId) {
            case 1:  //按下按钮
                //更改文本框的内容
                if (gameover == 1)
                {
                    KillTimer(hWnd, 2);
                    KillTimer(hWnd, 3);
                }
                gameover = 0;
                iScoring = 0;
                iFail = 0;
                h = 00;
                m = 00;
                s = 00;
                c1 = rand() % 26 + 'A';
                x = left + 5 + (c1 - 'A') * 9;
                y = top;
                CS = 0;
                MaxShot = 0;
                SetTimer(hWnd, 1, 10, NULL);                        //启动字母下落定时器
                SetTimer(hWnd, 3, 1000, NULL);                      //启动计时定时器
                break;
            case 2:
                KillTimer(hWnd, 1);
                KillTimer(hWnd, 3);
                break;
            case 3:
                SetTimer(hWnd, 1, 10, NULL);                        //启动字母下落定时器
                SetTimer(hWnd, 3, 1000, NULL);                      //启动计时定时器
                break;
            case 4:

                break;
            case 5:break;
            case 6:
                
                velocity = iScoring / 10;
                break;
            case 7:

                break;
            case 8:

                break;
            case 9:

                break;
            case ID_START:                                           //开始ID
                if (gameover == 1)
                {
                    KillTimer(hWnd, 2);
                    KillTimer(hWnd, 3);
                }
                gameover = 0;
                iScoring = 0;
                iFail = 0;
                h = 00;
                m = 00;
                s = 00;
                c1 = rand() % 26 + 'A';
                x = left + 5 + (c1 - 'A') * 9;
                y = top;
                CS = 0;
                MaxShot = 0;
                SetTimer(hWnd, 1, 10, NULL);                        //启动字母下落定时器
                SetTimer(hWnd, 3, 1000, NULL);                      //启动计时定时器
                break;
            case ID_STOP:                                           //暂停ID
                KillTimer(hWnd, 1);
                KillTimer(hWnd, 3);
                break;
            case ID_CONTINUE:
                SetTimer(hWnd, 1, 10, NULL);                        //启动字母下落定时器
                SetTimer(hWnd, 3, 1000, NULL);                      //启动计时定时器
                break;
            case IDM_ABOUT:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
                break;
            case IDM_HELP:
                DialogBox(hInst, MAKEINTRESOURCE(IDD_HELP), hWnd, About);
                break;
            case IDM_EXIT:
                DestroyWindow(hWnd);
                break;
            default:
                return DefWindowProc(hWnd, message, wParam, lParam);
            }
        }
        break;
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // TODO: 在此处添加使用 hdc 的任何绘图代码...
            DrawBk(hdc, left, top, right, bottom);                  //显示背景
            ShowScoring(hdc, right + 20, top + 50, iScoring, iFail, h, m, s);//显示分数
            if (gameover)                                           //判断游戏是否结束
                GameOver(hdc, left + 80, top + 130);                //显示游戏结束
            else                                                    //显示游戏画面
            {
                char szTemp[8];
                sprintf_s(szTemp, "%c", c1);                        //将下落字母转为字符串
                TextOutA(hdc, x, y, szTemp, strlen(szTemp));        //显示下落字母
            }
            EndPaint(hWnd, &ps);
        }
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}

运行结果及报错内容

无报错

我的解答思路和尝试过的方法

暂未想到

我想要达到的结果

能够输入字符