核取方块
文字方块
核取方块是一个文字方块,文字通常出现在核取方块的右边(如果您在建立按钮时指定了BS_LEFTTEXT样式,那么文字会出现在左边;您也许将用BS_RIGHT直接调整文字来组合此样式)。核取方块通常用於允许使用者对选项进行选择的应用程式中。核取方块的常用功能如同一个开关:单击框一次将显示勾选标记,再次单击清除勾选标记。
常用样式
核取方块最常用的两种样式是BS_CHECKBOX和BS_AUTOCHECKBOX。
BS_CHECKBOX
在使用BS_CHECKBOX时,您需要自己向该控制项发送BM_SETCHECK讯息来设定勾选标记。wParam参数设1时设定勾选标记,设0时清除勾选标记。通过向该控制项发送BM_GETCHECK讯息,您可以得到该核取方块的目前状态。在处理来自控制项的WM_COMMAND讯息时,您可以用如下的指令来翻转X标记:
SendMessage (HWND) lParam, BM_SETCHECK, (WPARAM)
!SendMessage ((HWND) lParam, BM_GETCHECK, 0, 0), 0;
注意第二个SendMessage呼叫前面的运算子「!」,其中lParam是在WM_COMMAND讯息中传给使用者视窗讯息处理程式的子视窗代号。如果您以後又想知道按钮的状态,那么可以向它发送另一条BM_GETCHECK讯息;您也可以将目前状态储存在您的视窗讯息处理程式中的一个静态变数里,或者向它发送BM_SETCHECK讯息来初始化带勾选标记的BS_CHECKBOX核取方块:
SendMessage (hwndButton, BM_SETCHECK, 1, 0) ;
BS_AUTOCHECKBOX
对BS_AUTOCHECKBOX样式,按钮自己触发勾选标记的开和关,所以您的视窗讯息处理程式可以忽略WM_COMMAND讯息。当您需要按钮目前的状态时,可以向控制项发送BM_GETCHECK讯息:
iCheck = (int) SendMessage (hwndButton, BM_GETCHECK, 0, 0) ;
如果该按钮被选中,则iCheck的值为TRUE或者非零数;如果按钮未被选中,则iCheck的值为FALSE或0。
其余两种核取方块样式是BS_3STATE和BS_AUTO3STATE,正如它们名字所暗示的,这两种样式能显示第三种状态-核取方块内是灰色-它出现在向控制项发送wParam等于2的WM_SETCHECK讯息时。灰色是向使用者表示此框不能被选本章的或者禁止使用。
核取方块沿矩形的左边框对齐,并集中在呼叫CreateWindow时规定的矩形的顶边和底边之间,在该矩形内的任何地方按下滑鼠都会向其父视窗发送一个WM_COMMAND讯息。核取方块的最小高度是一个字元的高度,最小宽度是文字中的字元数加2。
参考资料
最新修订时间:2024-01-19 04:40
目录
概述
参考资料