单击 CButton 时发送 WM_SETSTYLE 到 BS_DEFPUSHBUTTON 消息

CButton gets send WM_SETSTYLE to BS_DEFPUSHBUTTON Message when clicked

我有几个 CButton 对象。当我单击它们时,它们会发送 WM_SETSTYLE 消息,将样式从 BS_PUSHBUTTON 更改为 BS_DEFPUSHBUTTON。这种变化是永久性的,当我按下另一个按钮时不会消失。

CButton* button = new CButton;
button->Create(L"button", WS_CHILD | WS_VISIBLE , CRect( 10,10,100,100), this, IDC_BUTTON);

什么会导致这种行为?

出于测试目的,我从头开始创建了一个新项目。那里的按钮不会改变。但我无法弄清楚,我的做法有何不同。

在对话框或 window 中 child windows 此状态分别由 WM_NEXTDLGCTL 处理 CWnd::GotoDlgCtrl and CWNd::NextDlgCtrl/PrevDlgCtrl

当涉及按钮时,切勿在对话框中使用 SetFocus。