这种方法能让人满意地执行。您将新的颜色值储存在iColor中,并且还建立了一个回圈,轮流使用所有八种颜色的ID值。您取得每个单选按钮控制项的视窗代号,并用SendMessage给每个代号发送一条BM_SETCHECK讯息。只有对於向对话方块视窗讯息处理程式发送WM_COMMAND讯息的按钮,这个讯息的wParam值才被设定为1。
第一种简化的方法是使用专门的对话方块程序SendDlgItemMessage:
它相同於:
现在,回圈将变成这样:
稍微有些改进。但是真正的重大突破要等到使用了CheckRadioButton函式时才会出现:
这个函式将ID在idFirst到idLast之间的所有单选按钮的选中标记都清除掉,除了ID为idCheck的单选按钮,因为它是被选中的。这里,所有ID必须是连续的。从此我们可以完全摆脱回圈,并使用:
这正是ABOUT2对话方块程序所采用的方法。
在使用核取方块时,也提供了类似的简化函式。如果您建立了一个「CHECKBOX」对话方块视窗控制项,那么可以使用如下的函式来设定和清除选中标记:
如果iCheck设定为