单击时如何将按钮设置为默认值?

时间:2015-08-05 02:04:32

标签: c winapi

这是Windows中“字体”对话框中两个按钮的示例:

enter image description here

“确定”按钮是默认按钮,如果单击“取消”按钮(鼠标按下),则“取消”按钮将成为默认按钮。

我如何在WinAPI中实现这一点,我应该处理每个按钮的鼠标按下事件,并添加到单击 public String toString() { return "\"" + myTitle + ",\" by " + myAuthors; } 样式的按钮并从其他按钮中删除此样式?

1 个答案:

答案 0 :(得分:4)

DM_SETDEFID发送到对话框以更改默认按钮ID。请注意以下几点:

  

使用DM_SETDEFID消息可能会产生多个按钮   似乎具有默认的按钮状态。当系统   打开一个对话框,它会在对话框中绘制第一个按钮   具有默认状态边框的模板。发送DM_SETDEFID消息   更改默认按钮并不总是会删除默认状态   第一个按钮的边框。在这些情况下,应用程序   应发送BM_SETSTYLE消息以更改第一个按钮   边框风格

除了发送DM_SETDEFID设置新的默认按钮之外,您还应将BM_SETSTYLE发送到默认按钮以清除BS_DEFPUSHBUTTON样式。