单击时,CButton会将WM_SETSTYLE发送到BS_DEFPUSHBUTTON消息

时间:2015-07-23 15:06:19

标签: mfc focus

我有几个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);

什么可能导致这种行为?

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

1 个答案:

答案 0 :(得分:1)

在具有子窗口的对话框或窗口中,此状态由WM_NEXTDLGCTL各自处理 CWnd::GotoDlgCtrlCWNd::NextDlgCtrl/PrevDlgCtrl

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