当按钮的高度为文字字元高度的7/4倍时,按钮的外观看起来最好,其中文字字元由BTNLOOK使用;而按钮的宽度至少调节到文字的宽度再加上两个字元的宽度。
当滑鼠游标在按钮中时,按下滑鼠按键将使按钮用三维阴影重画自己,就好像真的被按下一样。放开滑鼠按键时,就恢复按钮的原貌,并向父视窗发送一个WM_COMMAND讯息和BN_CLICKED通知码。与其他按钮型态相似,当按钮拥有输入焦点时,在文字的周围就有虚线,按下及释放Spacebar键与按下及释放滑鼠按键具有相同的效果。
您可以通过给视窗发送BM_SETSTATE讯息来模拟按钮闪动。以下的操作将导致按钮被按下:
下面的呼叫使按钮恢复正常:
hwndButton视窗代号是从CreateWindow呼叫传回的值。
您也可以向按键发送BM_GETSTATE讯息,子视窗控制项传回按钮目前的状态:如果按钮被按下,则传回TRUE;如果按钮处於正常状态,则传回FALSE。但是,绝大多数应用并不需要这一讯息。因为按钮不保留任何开/关资讯,所以BM_SETCHECK讯息和BM_GETCHECK讯息不会被用到。
核取方块
核取方块是一个文字方块,文字通常出现在核取方块的右边(如果您在建立按钮时指定了BS_LEFTTEXT样式,那么文字会出现在左边;您也许将用BS_RIGHT直接调整文字来组合此样式)。核取方块通常用於允许使用者对选项进行选择的应用程式中。核取方块的常用功能如同一个开关:单击框一次将显示勾选标记,再次单击清除勾选标记。
核取方块最常用的两种样式是BS_CHECKBOX和BS_AUTOCHECKBOX。在使用BS_CHECKBOX时,您需要自己向该控制项发送BM_SETCHECK讯息来设定勾选标记。wParam参数设1时设定勾选标记,设0时清除勾选标记。通过向该控制项发送BM_GETCHECK讯息,您可以得到该核取方块的目前状态。在处理来自控制项的WM_COMMAND讯息时,您可以用如下的指令来翻转X标记: