




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
对话框与控件编程一、对话框编程l 创建一个基于单文档视图框架的应用程序。l 执行菜单命令:视图/资源视图,进入资源视图窗口,点击Dialog资源项,右键添加一个对话框资源。l 在对话框资源窗口上右键,添加对话框类。l 在主菜单资源的视图菜单中添加新菜单项,用于显示对话框。将新添加的菜单项的消息处理函数映射到View类中。一、添加对话框类l 在新加的菜单消息处理函数中添加代码l CDlgExam1 dlg;dlg.DoModal();通过调用Cdialog类的DoModal()函数显示的对话框都是模态对话框。“模态对话框”指对话框被弹出后,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在应用程序的其他操作不能继续执行。“非模态对话框”指对话框被弹出后,一直保留在屏幕上,用户可继续在对话框所在应用程序中执行其他操作。当需要使用对话框时,只需像激活窗口一样单击对话框所在区域即可。非模态对话框的编写和使用1.添加一个新的对话框资源2.添加一个新的对话框类CDlgNonModal3.为对话框添加一个静态整型变量NumOfInstance,初始化为0;3.重载对话框类的OnCancel和PostNcDestroy函数void CDlgNonModal:OnCancel()DestroyWindow();CDlgNonModal:NumOfInstance = 0;void CDlgNonModal:PostNcDestroy()CDialog:PostNcDestroy();delete this;int CDlgNonModal:NumOfInstance = 0;CDlgNonModal:CDlgNonModal(CWnd* pParent /*=NULL*/): CDialog(CDlgNonModal:IDD, pParent)CDlgNonModal:NumOfInstance+;4. 在View类中添加菜单命令处理函数if (CDlgNonModal:NumOfInstance = 0)CDlgNonModal* pDlg = new CDlgNonModal(0);pDlg-Create(IDD_DIALOG1);pDlg-ShowWindow(SW_SHOW);思考:如果需要在对话框类的成员函数中调用View类的成员函数?应该如何设计对话框类?在对话框类的成员函数中如何获取应用程序的View类实例的指针?只要为新创建的对话框类的构造函数添加一个View类的指针,在创建对话框类时,传入View的指针即可。二、按钮控件l 1、单选按钮l 添加group box控件l 将单选按钮控件放在group box控件中l 将每个group box控件中的第一个单选按钮的Group属性值设为true,保证不同group box控件中的单选按钮互不影响初始化单选按钮的选择状态重载对话框的OnInitDialog()函数,使用对话框成员函数CheckRadioButton()初始化一个group box中的单选按钮选择状态。void CheckRadioButton(int nIDFirstButton, int nIDLastButton, int nIDCheckButton)获取一个group box中的单选按钮选择值:使用对话框的GetCheckedRadioButton()成员函数获取选中的单选按钮的ID号,使用对话框的GetDlgItemTextW()获取单选按钮的文本。int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);长春理工大学计算机科学技术学院 陈纯毅CheckRadioButton(IDC_RADIO_MALE,IDC_RADIO_FEMALE,IDC_RADIO_MALE);void CDlgExam1:OnBnClickedButOk()int nID=GetCheckedRadioButton(IDC_RADIO_MALE, IDC_RADIO_FEMALE);CString strAge,strSex;GetDlgItemTextW(nID,strSex);CDialog:OnOK();MessageBox(CString(L你的选择是:)+strSex);2、复选框按钮一个group box中的复选框按钮的初始化使用对话框类的GetDlgItem()获得复选框按钮对象的指针,将该指针转换成Cbutton类型指针,使用Cbutton的SetCheck成员函数设置复选框按钮。获取一个group box中被勾选的复选框按钮的文本将所有复选框按钮的ID号存在一个数组中。通过循环,使用GetDlgItem()获得每个复选框按钮对象的指针,并转换成Cbutton指针,通过CButton的GetCheck()判断复选框是否被勾选,使用Cbutton的GetWindowText()获取复选框文本。CButton* pBut = (CButton*)GetDlgItem(IDC_CHECK1);pBut-SetCheck(1);void CDlgExam1:OnBnClickedButOk()int nIDs3=IDC_CHECK1, IDC_CHECK2,IDC_CHECK3;CButton* pBut;CString buf,strPrefer=L;for(int i=0;iGetDlgItem(nIDsi);if(pBut-GetCheck()pBut-GetWindowTextW(buf);strPrefer = strPrefer + CString(L ) + buf;CDialog:OnOK();MessageBox(CString(L你的选择是:)+strPrefer);三、编辑框(1)多行编辑框将编辑框的Multiline和Want Return属性同时设置为true。为编辑框控件绑定一个CEdit类型的变量。使用CEdit的GetLineCount()获取文本的行数,使用CEdit的LineLength()获取指定行的字符数,使用Cedit的GetLine()获取指定行的字符。例程:TCHAR str100;if(m_edit.GetLineCount()=2) int nChars; nChars = m_edit.LineLength(1); m_edit.GetLine(1,str,nChars); strnChars = 0; MessageBox(str);(2)密码输入编辑框重载对话框的OnInitDialog();为编辑框控件绑定一个CEdit类型的变量,使用CEdit的SetPasswordChar()设置密码显示字符例程:m_edit.SetPasswordChar(*);长春理工大学计算机科学技术学院 陈纯毅幻灯片22(3)数字输入编辑框设置编辑框控件的Number属性为True。只能输入数字和小数点?(1)在解决方案中添加一个新的MFC类CNumEdit, CNumEdit继承自CEdit。(2)为CNumEdit添加WM_CHAR消息处理函数void CNumEdit:OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)if(nChar = . | (nChar=0 & nChar =9)CEdit:OnChar(nChar, nRepCnt, nFlags);(3)为编辑框绑定一个CNumEdit类型的控件变量。(4)带旋转按钮的编辑框在添加编辑框后,接着就添加一个Spin Control控件,设置Spin Control的Auto Buddy属性为True,设置Set Buddy Integer属性为True。为Spin Control绑定一个CSpinButtonCtrl变量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉林省四平市第三中学2026届数学九年级第一学期期末经典试题含解析
- 小学生营养膳食
- 2026届安徽省宿州市埇桥集团学校数学七年级第一学期期末质量检测试题含解析
- 2026届安徽省铜陵市名校数学九上期末综合测试模拟试题含解析
- 专科知识培训小结课件
- 四川省泸州市泸县2026届数学八上期末学业水平测试试题含解析
- 2026届安徽省宿州市埇桥区闵贤中学数学七年级第一学期期末质量检测试题含解析
- 代理进口协议集锦15篇
- 中医药产业国际市场开拓与机遇研究
- 2025深圳市房屋租赁合同【范本】
- 微纳集成电路制造工艺 课件全套 第1-12章 绪论;硅单晶与硅晶圆制备工艺 -工艺集成与工艺流程
- 广东电网公司海南电网公司南网能源公司2025年9月社会招聘笔试参考题库附带答案详解
- 开学第一课【快闪】浪浪山小妖怪:谁都可以从现在开始
- 慢阻肺临床路径试题及答案
- 800个产粮大县名单
- 集体荣誉-主题班会课件
- 【某酚醛污水处理厂的经济评估计算过程案例2100字】
- 2025年时事政治考试100题(含参考答案)
- 公司年度财务预算
- 2025年高考语文考前关注:作文审题立意技巧
- 2024年酒吧演艺公司与艺人合同
评论
0/150
提交评论