第十一章 对话框part2
来源:互联网 发布:欠淘宝贷款一万立案吗 编辑:程序博客网 时间:2024/05/22 13:24
更复杂的对话框
ABOUT2.CPP
资源文件
使用对话框控件
如上所示大多数子窗口控件发送WM_COMMAND消息给其父窗口(唯一例外的是滚动条控件)
如上RC文件中GROUPBOX控件是一个带标题(标题为「Color」或者「Figure」)的分组方块,每组单选按钮都由这样的分组方块包围。
选中和不选中按钮均需要向子窗口控件发送BM_CHECK消息。要设定一个按钮选中标记,您可以使用: SendMessage(hwndCtrl, BM_SETCHECK, 1, 0);
要消除选中标记,您可以使用: SendMessage (hwndCtrl, BM_SETCHECK, 0, 0);hwndCtrl参数是子窗口按钮控件的窗口句柄。
id = GetWindowLong (hwndCtrl, GWL_ID) ; //可以用对话框句柄和控件ID来取得一个对话框控件的窗口句柄
轮流使用所有八种颜色的ID值:
第一种简化的方法是使用专门的对话框程序: SendDlgItemMessage (hDlg, id, iMsg, wParam, lParam) ;
第二种方法:CheckRadioButton (hDlg, idFirst, idLast, idCheck);这个函数将ID在idFirst到idLast之间的所有单选按钮的选中标记都清除掉.所以这个在使用复选框时,变得十分有用
如果是建立了一个「CHECKBOX」对话框窗口控件,那么可以使用如下的函数来设定和清除选中标记: CheckDlgButton (hDlg, idCheckbox, iCheck);如果iCheck设定为1,那么按钮被选中;如果设定为0,那么按钮不被选中。Check = IsDlgButtonChecked (hDlg, idCheckbox) ; //取得对话框中某个复选框的状态。
Tab停留和分组
Windows完成了将输入焦点从一个控件移动到另一个控件的所有工作。尽管如此,您必须在对话框模板中使用WS_TABSTOP和WS_GROUP窗口样式达到此目的。对于所有想要使用Tab键存取的控件,都要在其窗口样式中指定WS_TABSTOP。包含WS_TABSTOP样式的控件(特别是静态控件)不应该取得输入焦点,文字字段中的「&」将导致紧跟其后的字母以底线显示。
indows提供了两个函数,以便程序写作者找寻下一个或者前一个Tab键停留项或者组项
hwndCtrl = GetNextDlgTabItem (hDlg, hwndCtrl, bPrevious) ;
wndCtrl = GetNextDlgGroupItem (hDlg, hwndCtrl, bPrevious) ;
在对话框上画图
将其它函数用于对话框
EnableWindow(hwndCtrl, bEnable);
当bEnable为TRUE(非0)时,它启用控件;当bEnable为FALSE(0)时,它禁用控件。在控件被禁用时,它不再接收键盘或者鼠标输入。
定义自己的控件
EllipPushWndProc只是一个空架子。例如,按钮不会像普通的按键那样闪烁。要翻转按键内的颜色,窗口消息处理程序必须处理WM_KEYDOWN(来自空格键)和WM_LBUTTONDOWN消息。EllipPushWndProc也不处理WM_ENABLE消息。如上所述,对话框程序可以使用EnableWindow函数来禁用某窗口。
- 第十一章 对话框part2
- 第十一章 对话框part1
- 第十一章 对话框part3
- 第十一章 对话框part4
- Windows程序设计 第十一章 模态对话框
- Excel VBA高效办公应用-第十一章-教师员工数据管理-Part2 (课表助手小程序)
- 第十一章
- 第十一章
- 第十一章
- 第十一章
- 第十一章
- 第十一章
- 第十一章
- 第十一章
- 第六章 键盘part2
- 第七章 鼠标part2
- 第八章 定时器part2
- 第五章作业part2
- 4.19 javascript学习
- mysql 5.0 集群负载均衡—经过测试
- 笑谈人生
- BindingSource实现DataGridview与TextBox动态显示(绑定WinForm)
- 上网也低碳 使用电脑省电的方式
- 第十一章 对话框part2
- Excel XP受损文件的急救三招
- 它已经被别的用户以独占方式打开
- GCC-3.4.6源代码学习笔记(30)
- Android 模拟器上Marcket.
- JAVA 中的Web 服务规范:
- 一个详细的设计表的案例
- Studying note of GCC-3.4.6 source (30)
- 配置ASP.NET平台时遇到的“访问IIS元数据库失败”