




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual C+游戏程序设计 菜单编程一、上机目的:(1)掌握7种方法对编辑框进行操作。(2)掌握对话框伸缩功能的实现。(3)掌握用MSDN查找相关API函数。二、上机内容:以下题目都在VC+6.0环境下编程完成。1、新建一个MFC的单文档工程Mybole,并增加一个菜单选项“对话框”。插入一个对话框资源对应的对话框名称是:IDD_DIALOG1。在MFC中,对资源的操作通常都是通过一个与资源相关的类来完成的。在新建对话框资源上双击,弹出对话框,选择“Create a new class”选项。这时在Mybole程序的Class View选项卡中,可以看到新类,这个CTestDlg新类有两个
2、成员函数,其中一个就是它的构造函数,定义代码如下:CTestDlg:CTestDlg(CWnd* pParent /*=NULL*/): CDialog(CTestDlg:IDD, pParent)/AFX_DATA_INIT(CTestDlg)/AFX_DATA_INITCTestDlg类的构造函数首先调用其基类:CDialog的构造函数,并传递两个参数:一个是CTestDlg类的IDD成员,一个是父窗口指针,打开CTestDlg类的头文件,就可以发现这个IDD就是这个对话框资源的ID,代码如下:/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_D
3、IALOG1 ;/AFX_DATACtestDlg类的另一个函数是:DoDataExchange,主要用来完成对话框数据的交换和校验。了解API函数:我们创建一个模态对话框:void CMyboleView:OnDialog() / TODO: Add your command handler code here CTestDlg dlg;dlg.DoModal(); /创建模态对话框我们在IDD_DIALOG1上设计如下界面:实现加法运算,用7种方法实现:第一种方法:查找MSDN理解GetWindowText函数、SetWindowText函数、itoa函数和atoi函数。第二种方法:查找G
4、etDlgItemText函数和SetDlgItemText函数。写出代码实现之。第三种方法:查找GetDlgItemInt函数和SetDlgItemInt函数。写出代码实现之。第四种方法:将三个编辑框控件和三个变量相关联。用同样方法添加m_num1、m_num2和m_num3。这时候我们观察这个类的头文件和构造函数。/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_DIALOG1 ;intm_num1;intm_num2;intm_num3;/AFX_DATACTestDlg:CTestDlg(CWnd* pParent /*=NULL*/): C
5、Dialog(CTestDlg:IDD, pParent)/AFX_DATA_INIT(CTestDlg)m_num1 = 0;m_num2 = 0;m_num3 = 0;/AFX_DATA_INIT这时DoDataExchange函数变为:void CTestDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CTestDlg)DDX_Text(pDX, IDC_EDIT1, m_num1);DDX_Text(pDX, IDC_EDIT2, m_num2);DDX_Text(pDX,
6、IDC_EDIT3, m_num3);/AFX_DATA_MAP我们编写代码如下:void CTestDlg:OnBtnAdd() UpdateData(true); m_num3=m_num1+m_num2;UpdateData(false);请回答为什么加上UpdateData(true);和UpdateData(false);两个语句呢?第五种方法:我们把编辑框控件再与三个变量相关联。/ Dialog Data/AFX_DATA(CTestDlg)enum IDD = IDD_DIALOG1 ;CEditm_edit3;CEditm_edit2;CEditm_edit1;/AFX_DAT
7、A这时在CTestDlg类的DoDataExchange函数中增加了三个DDX_Control函数,分别将一个对话框控件与一个控件变量相关联。代码如下:接下来大家自己调用CEdit类的对象成员函数GetWindowText函数和SetWindowText函数实现加法运算。第6种方法我们可以通过发送消息WM_GETTEXT消息。查找MSDN理解。对应的代码如下:第7种方法:采用编辑框控件消息:EM_SETSEL查找MSDN理解:CWnd:SendDlgItemMessageLRESULT SendDlgItemMessage( int nID, UINT message, WPARAM wPar
8、am = 0, LPARAM lParam = 0 );Return ValueSpecifies the value returned by the controls window procedure, or 0 if the control was not found.ParametersnIDSpecifies the identifier of the dialog control that will receive the message.messageSpecifies the message to be sent.wParamSpecifies additional messag
9、e-dependent information. lParamSpecifies additional message-dependent information.RemarksSends a message to a control. 对应实现的代码如下:void CTestDlg:OnBtnAdd() / TODO: Add your control notification handler code here int num1,num2,num3;char ch110,ch210,ch310;SendDlgItemMessage (IDC_EDIT1,WM_GETTEXT,10,(LPARAM)ch1);SendDlgItemMessage (IDC_EDIT2,WM_GETTEXT,10,(LPARAM)ch2); num1=atoi(ch1);num2=atoi(ch2);num3=num1+num2; itoa(num3,ch3,10);SendDlgItemM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公路开挖合同范本
- 买衣服购销合同范本
- 养殖配件小窗采购合同范本
- 京津冀外包合同范本
- 农民承包树苗合同范本
- 企业定制酒合同范本
- 出售农机全套纸合同范本
- 半日制合同范本
- 单位门卫聘用合同范本
- 北京正规购车合同范本
- 电气控制与PLC应用技术(FX5U) 课件 模块3 基本逻辑指令的应用
- 电气自动化技术专业人才需求岗位分析及岗位职责能力分析报告
- 2024年江苏食品药品职业技术学院单招职业技能测试题库附答案
- 旅游景观文化与赏析 知到智慧树网课答案
- HYT 215-2017 近岸海域海洋生物多样性评价技术指南
- 2024-贷款受托支付合同模板
- 学校安全教育培训省公开课金奖全国赛课一等奖微课获奖课件
- 柴油发电机基础知识教案
- SHT 3005-2016 石油化工自动化仪表选型设计规范
- 2024年苏州卫生职业技术学院单招职业适应性测试题库及答案解析
- 阳光分级阅读 Letters for Mr James 课件
评论
0/150
提交评论