




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验六MFC控件编程实验实验目的熟悉VisualStudio开发环境;〔2〕掌握类向导的使用方法,熟练使用类向导进行消息映射,添加类的数据成员;〔3〕掌握MFC环境下标准控件的使用方法。二、实验内容创立如下图的基于对话框的应用程序,在图形显示区绘制一个矩形并用单色画刷填充矩形内部。通过滚动条控件设置填充颜色,并在编辑框中显示颜色的RGB值,过单项选择按钮可以设置矩形的边框线型,“显示图形〞复选框可以控制是否显示矩形。设置完成后,单击“显示〞按钮在“图形显示区〞显示新的绘图效果。单击“退出〞按钮退出程序。实验结果列表说明各个控件的属性设置,列出控件功能的实现代码。控件的属性设置:控件属性设置CaptionIDGroup“显示〞下压式按钮显示IDC_SHOWFalse“退出〞下压式按钮退出IDC_QUITFalse“显示图形〞复选按钮显示图形IDC_SHOWPICTUREFalse“实线〞单项选择按钮实线IDC_SOLIDTrue“虚线〞单项选择按钮虚线IDC_DASHTrue“点划线〞单项选择按钮点划线IDC_DASHDOTTrue“双点划线〞单项选择按钮双点划线IDC_DASHDOTDOTTrue“红色〞滚动条IDC_REDFalse“绿色〞滚动条IDC_GREENFalse“蓝色〞滚动条IDC_BLUEFalseStaticText红色IDC_STATICTrueStaticText绿色IDC_STATICTrueStaticText蓝色IDC_STATICTrue编辑框IDC_RGBFalse控件功能的实现代码:1.“显示〞下压式按钮://按下“显示〞按钮时,绘制图形voidCDemoDlg::OnPaint(){CPaintDCdc(this);CPenPen2,*pOldPen;CBrushbrush;UpdateData(TRUE);//根据m_nLineStyle的值判断用何种线形绘制图形,//并获取滚动条的位置,创立画笔、画刷switch(m_nLineStyle) {case0:Pen2.CreatePen(PS_SOLID,3,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case1:Pen2.CreatePen(PS_DASH,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case2:Pen2.CreatePen(PS_DASHDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case3:Pen2.CreatePen(PS_DASHDOTDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break; }pOldPen=dc.SelectObject(&Pen2);dc.SelectObject(&brush);//判断m_nShow是否为真,假设为真绘制图形if(m_nShow==TRUE) {dc.Rectangle(80,50,350,160); }dc.SelectObject(pOldPen);}2.“退出〞下压式按钮://按下“退出〞按钮时,退出程序voidCDemoDlg::OnStop(){ //TODO:AddyourcontrolnotificationhandlercodehereCDialog::EndDialog(IDC_QUIT);}3.“显示图形〞复选按钮://定义布尔变量,判断是否显示图形,用于数据交换BOOLm_nShow;//判断m_nShow是否为真,假设为真绘制图形if(m_nShow==TRUE) {dc.Rectangle(80,50,350,160); }4.线形设置://定义一个整形变量,有于判断有何种线形绘制图形intm_nLineStyle;//根据m_nLineStyle的值判断用何种线形绘制图形,//并获取滚动条的位置,创立画笔、画刷switch(m_nLineStyle) {case0:Pen2.CreatePen(PS_SOLID,3,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case1:Pen2.CreatePen(PS_DASH,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case2:Pen2.CreatePen(PS_DASHDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break;case3:Pen2.CreatePen(PS_DASHDOTDOT,1,RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() ));brush.CreateSolidBrush(RGB(m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos()));break; }pOldPen=dc.SelectObject(&Pen2);dc.SelectObject(&brush);5.滚动条://定义CScrollBar类型的变量,用于调用GetScrollPos()获取滑动块的位置CScrollBarm_Red;CScrollBarm_Green;CScrollBarm_Blue;//设置滚动条的最大值最小值m_Red.SetScrollRange(0,255);m_Green.SetScrollRange(0,255);m_Blue.SetScrollRange(0,255);//设置滚动条滑块的起始位置m_Red.SetScrollPos(100);m_Green.SetScrollPos(100);m_Blue.SetScrollPos(100);//设置滚动条点左右箭头时滚动值和点左右空白地方的滚动值voidCDemoDlg::OnHScroll(UINTnSBCode,UINTnPos,CScrollBar*pScrollBar){ //TODO:Addyourmessagehandlercodehereand/orcalldefaultswitch(nSBCode) {caseSB_THUMBTRACK:pScrollBar->SetScrollPos(nPos);break;caseSB_LINELEFT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()-1);break;caseSB_LINERIGHT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()+1);break;caseSB_PAGELEFT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()-10);break;caseSB_PAGERIGHT:pScrollBar->SetScrollPos(pScrollBar->GetScrollPos()+10);break; }m_szRGB.Format(_T("RGB(%d,%d,%d)"),m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() );UpdateData(FALSE);CDialog::OnHScroll(nSBCode,nPos,pScrollBar);}6.编辑框://定义一个字符串型变量,用于显示滚动条的位置CStringm_szRGB;//显示滚动条的初始位置m_szRGB=_T("RGB(100,100,100)");//显示滚动条滑动时的RGB的值m_szRGB.Format(_T("RGB(%d,%d,%d)"),m_Red.GetScrollPos(),m_Green.GetScrollPos(),m_Blue.GetScrollPos() );实验结果:在资源视图的IDD_DEMO_DIALOG中直接添加按钮和编辑框,如下列图;调试运行程序:改变线形和滚动条的位置,绘制不同线形,不同背景刷的图形:(2)总结类向导的功能和使用方法。功能:类向导,又称ClassWizard,它提供了一个管理类的一个快捷的界面和快捷的方式,使我们能方便的管理成员变量、成员函数、消息映射、命令等。可以从中直接添加消息映射,创立和添加成员变量等。使用方法:在解决方案资源管理器中,选中工程名称,右击鼠标,选择类向导,就可进入类向导界面。在此,可以直接添加消息映射,然后选择添加处理程序,编辑代码就可直接添加消息映射和需要处理消息的函数。也可在此直接创立成员变量,添加命令等方法类似。(3)总结实验的心得体会,实验中遇到的困难以及解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 充电桩投资融资合作协议范本
- 特色餐厅服务员劳动合同规范范本
- 豪车牌照租赁中介服务合同
- 转让订金合同协议书范本
- 广域网协议书范本
- 房屋买卖合同撤销及赔偿纠纷起诉书
- 产权清晰一手房购置协议
- 玄武岩纤维钢筋绑扎技术专题
- 儿童肺炎预防健康教育
- 肿瘤病人的心理护理
- 水泥搅拌桩施工项目进度管理措施
- 2002版《水利工程施工机械台时费定额》
- 高分子物理模拟试题+参考答案
- 废弃物焚烧炉安全操作规程
- 2025年业务员个人工作计划样本(3篇)
- 职业技术学院“第二课堂成绩单”制度实施办法
- 2024年03月广东珠海华润银行春季校园招考笔试历年参考题库附带答案详解
- 2025年中国烟草公司招聘笔试参考题库含答案解析
- 反对自由主义-全文-原文
- 2024-2030年中国钽行业市场前景分析及投资发展预测报告
- 元宇宙期刊产业政策-洞察分析
评论
0/150
提交评论