版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、按钮控件实例的功能 首先介绍此实例实现的功能。此实例用来根据网站类型选择网站,并将选择的网站的名称显示到编辑框中。网站类型有“门户”、“论坛”和“博客”三种,为单选按钮。网站有六个:鸡啄米、新浪、天涯论坛、韩寒博客、网易和凤凰网论坛,均为复选框。 当选中某种网站类型即点了某个单选按钮时,其对应的网站的复选框就激活,其他则禁用,不允许选择,且为非选中状态。例如,如果选中了“门户”单选按钮,则“新浪”、“网易”复选框激活,允许用户选择,而其他复选框则禁用。
2、 按钮控件实例的实现 鸡啄米下面为大家详细阐述此实例的编写步骤。 1. 创建一个基于对话框的MFC工程,名称设为“Example23”。 2. 在自动生成的主对话框IDD_EXAMPLE23_DIALOG的模板中,删除“TODO: Place dialog controls here.”静态文本框,添
3、加两个Group Box,属性Caption分别改为“网站类型”、“网站”。 3. 在Group Box“网站类型”中加入三个Radio Button,Caption分别设为“门户”、“论坛”和“博客”,ID分别设为IDC_PORTAL_RADIO、IDC_FORUM_RADIO和IDC_BLOG_RADIO。 4. 在Group Box“网站”中加入六个Check Box,Caption分别设为“鸡啄米”、“新浪”、“天涯论坛”、“韩寒博客”、“网易
4、”和“凤凰网论坛”,ID分别设为IDC_CHECK1、IDC_CHECK2、IDC_CHECK3、IDC_CHECK4、IDC_CHECK5和IDC_CHECK6。然后为每个复选框添加CButton类型的变量m_check1、m_check2、m_check3、m_check4、m_check5和m_check6。 5. 在两个Group Box下面,添加一个静态文本框和一个编辑框。静态文本框的Caption设为“选择的网站:”。编辑框的ID设为IDC_WEBSITE_SEL_EDIT,属性Read Only改为True,
5、使此编辑框为只读状态,不允许用户编辑。 6. 将“OK”按钮的Caption修改为“确定”,“Cancel”按钮的Caption修改为“退出”。到此,对话框模板就修改好了,如下图: 7. 为“门户”、“论坛”和“博客”三个单选按钮分别添加点击消息的消息处理函数CExample23Dlg:OnBnClickedPortalRadio()、CExample23Dlg:OnBnClickedForumRadio()和CExample23Dlg:O
6、nBnClickedBlogRadio()。 在某个单选按钮被点击之后,我们可以先将六个网站复选框都禁用且置为非选中状态,而后将选择的网站类型对应的网站复选框激活。为了代码复用,我们将置所有复选框为禁用且非选中状态的操作写到一个函数里,此函数为CExample23Dlg:InitAllCheckBoxStatus(),然后就可以在三个单选按钮的消息处理函数中调用InitAllCheckBoxStatus(),实现复选框状态的初始化。 三个消
7、息处理函数及InitAllCheckBoxStatus()函数的实现如下:C+代码1. void CExample23Dlg:OnBnClickedPortalRadio() 2. 3. / TODO: Add your control notification handler code here 4. / 如果选择了“
8、门户”单选按钮,则激活复选框“新浪”和“网易”,其他复选框禁用并非选中 5. InitAllCheckBoxStatus(); 6. m_check2.EnableWindow(TRUE); 7. m_check5.EnableWindow(TRUE); 8. 9. 10. 1
9、1. void CExample23Dlg:OnBnClickedForumRadio() 12. 13. / TODO: Add your control notification handler code here 14. / 如果选择了“论坛”单选按钮,则激活复选框“天涯论坛”和“凤凰网论坛”,其他复选框禁用并非选
10、中 15. InitAllCheckBoxStatus(); 16. m_check3.EnableWindow(TRUE); 17. m_check6.EnableWindow(TRUE); 18. 19. 20. 21. void CExample23Dlg:On
11、BnClickedBlogRadio() 22. 23. / TODO: Add your control notification handler code here 24. / 如果选择了“博客”单选按钮,则激活复选框“鸡啄米”和“韩寒博客”,其他复选框禁用并非选中 25.
12、60; InitAllCheckBoxStatus(); 26. m_check1.EnableWindow(TRUE); 27. m_check4.EnableWindow(TRUE); 28. 29. 30. / 初始化所有复选框的状态,即全部禁用,全部非选中 31. void CExample23Dl
13、g:InitAllCheckBoxStatus() 32. 33. / 全部禁用 34. m_check1.EnableWindow(FALSE); 35. m_check2.EnableWindow(FALSE); 36. m_check3.EnableWindow
14、(FALSE); 37. m_check4.EnableWindow(FALSE); 38. m_check5.EnableWindow(FALSE); 39. m_check6.EnableWindow(FALSE); 40. 41. / 全部非选中 &
15、#160;42. m_check1.SetCheck(0); 43. m_check2.SetCheck(0); 44. m_check3.SetCheck(0); 45. m_check4.SetCheck(0); 46. m_check5.SetCheck(0
16、); 47. m_check6.SetCheck(0); 48. 8. 程序运行后,我们希望网站类型默认选择为“门户”,则修改对话框初始化函数CExample23Dlg:OnInitDialog()为:C+代码1. BOOL CExample23Dlg:OnInitDialog() 2. 3. CD
17、ialogEx:OnInitDialog(); 4. 5. / Add "About." menu item to system menu. 6. 7. / IDM_ABOUTBOX must be in the system comma
18、nd range. 8. ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX); 9. ASSERT(IDM_ABOUTBOX < 0xF000); 10. 11. CMenu* pSysMenu =
19、0;GetSystemMenu(FALSE); 12. if (pSysMenu != NULL) 13. 14. BOOL bNameValid; 15. CString&
20、#160;strAboutMenu; 16. bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); 17. ASSERT(bNameValid); 18. if
21、;(!strAboutMenu.IsEmpty() 19. 20. pSysMenu->AppendMenu(MF_SEPARATOR); 21.
22、 pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); 22. 23. 24. 25. / Set the icon for this dial
23、og. The framework does this automatically 26. / when the application's main window is not a dialog 27. SetIcon(m_hIcon, TRUE);&
24、#160; / Set big icon 28. SetIcon(m_hIcon, FALSE); / Set small icon 29. 30. /&
25、#160;TODO: Add extra initialization here 31. / 默认选中“门户”单选按钮 32. CheckDlgButton(IDC_PORTAL_RADIO, 1); 33. OnBnClickedPortalRadio(); 34.
26、; 35. return TRUE; / return TRUE unless you set the focus to a control 36. 9. 点击“确定”后,将选择的网站名字显示到编辑框中,那么需要修改“确定”按钮(原来的OK按钮)的消息处理函数CEx
27、ample23Dlg:OnBnClickedOk()如下:C+代码1. void CExample23Dlg:OnBnClickedOk() 2. 3. / TODO: Add your control notification handler code here 4. CString strWebsiteSel;
28、60; / 选择的网站 5. 6. / 若选中“鸡啄米”则将其加入结果字符串 7. if (1 = m_check1.GetCheck() 8. 9.
29、60; strWebsiteSel += _T("鸡啄米 "); 10. 11. / 若选中“新浪”则将其加入结果字符串 12. if (1 = m_check2.GetCheck() 1
30、3. 14. strWebsiteSel += _T("新浪 "); 15. 16. / 若选中“天涯论坛”则将其加入结果字符串 17. if
31、 (1 = m_check3.GetCheck() 18. 19. strWebsiteSel += _T("天涯论坛 "); 20. 21. / 若选中“韩寒博客”则将
32、其加入结果字符串 22. if (1 = m_check4.GetCheck() 23. 24. strWebsiteSel += _T("韩寒博客 "); 25. 26. / 若选中“网易”则将其加入结果字符串 27. if (1 = m_check5.GetCheck() 28. &
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介租房钥匙协议书
- 专利年费托管协议书
- 入孵合同协议书模板
- 体育场中标合同范本
- 全款买新房合同范本
- 2026年喷绘机市场环境分析
- 铝合金铸造工艺优化方案
- 代采代加工合同范本
- 争议地皮协议书范本
- 入股协议还入股合同
- 机械设备安全检查表88612
- 幼儿园绘本教学中师幼互动策略研究 论文
- 培智二年级体育课教案
- 不可不知的1000个处世常识
- 汽车维修保养服务单
- 300MW电气运行规程
- GA/T 1246-2015道路交叉口发光警示柱
- DB37-T 4328-2021 建筑消防设施维护保养技术规程
- 基于核心素养导向的初中数学试题命制策略与实例课件
- 《消防安全技术实务》课本完整版
- 深水质表59沟(渠)清淤单元工程施工质量验收评定表
评论
0/150
提交评论