当用户选择按钮时,其状态改变,按钮将通知消息发送到其父窗口。例如,每当用户选择按钮时,按钮控件就会发送BN_CLICKED通知消息。在所有情况下,【wParam中】参数的低位字包含控制标识符,【wParam中】的高位字包含通知代码,【lParam的】参数包含控制窗口句柄。
便携性问题通知消息的位置已从【lParam的】参数移至【wParam中】参数。Windows 3.【x】处理通知消息的应用程序在这些方面必须在这些方面被移植到基于Win32的应用程序。
消息和父窗口的响应取决于按钮的类型,样式和当前状态。以下是应用程序应该监视和处理的按钮通知消息。
信息 | 描述 |
BN_CLICKED | 用户点击了一个按钮。 |
BN_DBLCLK | 用户双击一个按钮。 |
BN_DISABLE | 一个按钮被禁用。 |
BN_PUSHED | 用户按下一个按钮。 |
BN_KILLFOCUS | 按钮失去了键盘焦点。 |
BN_PAINT | 该按钮应该被画。 |
BN_SETFOCUS | 该按钮获得了键盘焦点。 |
BN_UNPUSHED | 该按钮不再被推送。 |
只有具有BS_NOTIFY样式的按钮才会发送BN_DISABLE,BN_PUSHED,BN_KILLFOCUS,BN_PAINT,BN_SETFOCUS和BN_UNPUSHED通知消息。它发送BN_CLICKED和BN_DBLCLK通知消息,而不管BS_NOTIFY样式。
对于自动按钮,操作系统执行推送,取消和绘画。在这种情况下,应用程序通常仅处理BN_CLICKED和BN_DBLCLK通知消息。对于不自动的按钮,应用程序通常通过发送消息来更改按钮的状态来响应通知消息。有关将消息发送到按钮的信息,请参阅消息到按钮.
当用户选择所有者绘制的按钮时,该按钮向其父窗口发送包含要绘制的控件的标识符和关于其尺寸和状态的信息的WM_DRAWITEM消息。有关此消息的更多信息,请参阅使用所有者绘制的按钮.