设为首页 加入收藏

TOP

对话方块(二十四)
2010-12-30 21:13:56 来源: 作者: 【 】 浏览:40860
Tags:对话 方块
AN:
case IDC_WHITE:
iColor = LOWORD (wParam) ;

for (i = IDC_BLACK, i <= IDC_WHITE, i++)
SendMessage (GetDlgItem (hDlg, i),
BM_SETCHECK, i == LOWORD (wParam), 0) ;
return TRUE ;
其他行程式

这种方法能让人满意地执行。您将新的颜色值储存在iColor中,并且还建立了一个回圈,轮流使用所有八种颜色的ID值。您取得每个单选按钮控制项的视窗代号,并用SendMessage给每个代号发送一条BM_SETCHECK讯息。只有对於向对话方块视窗讯息处理程式发送WM_COMMAND讯息的按钮,这个讯息的wParam值才被设定为1。

第一种简化的方法是使用专门的对话方块程序SendDlgItemMessage:

它相同於:

现在,回圈将变成这样:

稍微有些改进。但是真正的重大突破要等到使用了CheckRadioButton函式时才会出现:

这个函式将ID在idFirst到idLast之间的所有单选按钮的选中标记都清除掉,除了ID为idCheck的单选按钮,因为它是被选中的。这里,所有ID必须是连续的。从此我们可以完全摆脱回圈,并使用:

这正是ABOUT2对话方块程序所采用的方法。

在使用核取方块时,也提供了类似的简化函式。如果您建立了一个「CHECKBOX」对话方块视窗控制项,那么可以使用如下的函式来设定和清除选中标记:

如果iCheck设定为

首页 上一页 21 22 23 24 25 26 27 下一页 尾页 24/82/82
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇剪贴簿 下一篇功能表及其他资源

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: