- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章常用控件的使用北京理工大学C
第 8 章 常用控件的使用 本章主要内容 控件的编程创建 控件的消息映射 控件的通用消息 控件的数据交换和数据检验 静态控件和按钮 一、控件的两种创建方式 使用对话框模版的编辑器; 编程方式:Create 通过编辑创建对话框资源; 创建对话框类; 为对话框类添加成员变量; 为WM_INITDIALG映射处理函数OnInitDialog(); 在对话框初始化函数中编程创建控件; 修改菜单资源,调用对话框 控件的创建方式 控件的创建方式 二、控件的消息及映射 控件被创建后,一旦其状态被改变,控件会向其父窗口发送消息:通知消息。 用MFC ClassWizard进行消息映射。 控件的消息及映射 控件的消息及映射 分析MFC ClassWizard的消息映射 对话框类头文件中成员函数的说明; afx_msg void OnButton1(); 对话框类实现文件中添加消息映射 BEGIN_MESSAGE_MAP(CCtrlDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON1, OnButton1) END_MESSAGE_MAP() 对话框类实现文件中成员函数的实现。 void CCtrlDlg::OnButton1() { MessageBox(你按下了\Button1\按钮!); } 三、利用Wizard映射控件的通用消息 通过类向导,创新定义通用消息WM_COMMAND的处理函数:OnCommand() 添加各消息识别与处理代码 利用Wizard映射控件的通用消息 { WORD nCode = HIWORD(wParam); // 取得控件的通知消息 WORD nID=LOWORD(wParam); //取得控件的ID号 if((nID==201)(nCode==BN_CLICKED)) MessageBox(你按下了\你好\按钮!); 四、控件的数据交换和数据校验 DDX:控件数据交换; DDV:控件数据校验; 通过类向导,为对话框中的控件设置关联变量:双击控件ID 或 “Add Variable”; 弹出“Add Member Variable” 对话框。 控件的数据交换和数据校验 控件的数据交换和数据校验 分析ClassWizard设置控件的工作 增加对话框类头文件中数据成员的说明; CButton m_Btn_1; CString m_Edit_1; 对话框类实现文件中构造函数 m_Edit_1 = _T(); 对话框类实现文件中DoDataExchange函数增加DDX/DDV代码。 DDX_Control(pDX, IDC_BUTTON1, m_Btn_1); DDX_Text(pDX, IDC_EDIT1, m_Edit_1); DDV_MaxChars(pDX, m_Edit_1, 20); 实现控件数据的输入和读取 CWnd::UpdateData(TRUE/FALSE),参数控制数据传递方向: TRUE:控件?变量; FALSE:变量?控件。 添加代码: UpdateData(TRUE); m_Btn_1.SetWindowText(m_Edit_1); 五、静态控件和按钮 静态控件:静态文本、组框、静态图片。 按钮: 命令按钮:消息BN_CLICKED、 BN_DOUBLECLICKED 复选框按钮:void SetCheck(int nCheck ); int GetCheck( ) const; 单选按钮: void CheckRadioButton(int FisrtID, int LastID, int CheckID); int GetRadioButton(int FisrtID, int LastID); 静态控件和按钮 新建对话框 添加并编辑控件资源: 创建对话框类 编辑菜单资源 添加调用对话框代码 注意属性中的“Group”及各控件的创建顺序,见“Resource.h”。 重定义对话框的OnInitDialog()和OnOK() 第7次实验内容 尝试编程方式创建控件; 通过例子熟悉控件消息映射机制; 练习数据交换与数据校验的例子; 通过例子练习静态控件与按钮的使用; * * if((nID==IDC_BUTTON1)(nCode==BN_CLICKED)) MessageBox(这是在OnCommand处理\Button1\“ 按钮!); return CDialog::OnCommand(wParam, lParam);} 通用消息的处理先于控件消息的处理! BOOL CFirstDlg::OnCommand(WPARAM wParam, LPA
您可能关注的文档
- 留学生教学lesson26你喜欢什么运动.ppt
- 百岁福5F馆招商手册.doc
- 百盛8-員工培訓制度.doc
- 病理图片课件:03.ppt
- 白云机场定期报告:白云机场:2016年半年度报告.doc
- 盐类水解第2课时用.ppt
- 皮肤美容概论1.ppt
- 盐类的水解_练习题3.doc
- 盖洛普路径和Q12对企业的影响.doc
- 百度收购91.doc
- 分析let s单元56ago2卷纸zheng unit56.pdf
- 塑胶材料其它分类原料pa9t 12.pdf
- md16x16数字媒体切换器设备.pdf
- 者参考项目发起人学科类型单位序列承包商修订页代码顺序典型.pdf
- 届世界天然气大会阿姆斯特丹2006add10288.pdf
- 期测试记录表每周weekly g1g6 journeys tests level 6 lesson26.pdf
- modernize-whitepaper现代化您应用程序白皮书.pdf
- anybackup产品典型案例分析.pdf
- 约克金融工程课程tfeslide32.pdf
- 广州市妇女儿童医疗中心历份教学药历01tjy.pdf
文档评论(0)