版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉轻工大学Windows编程实验报告(实验五)姓名: 刘 文 斌 院系:数学与计算机 学院班级:软件工程13 03班 学号: 13051100 50 老师: 刘 文 涛 2015.12.16实验五 常用控件程序1:Ex_DlgCtrls 用控件的编程方式来创建一个按钮(1) 选择“文件”à“新建”菜单,在弹出的“新建”对话框中单击“工程”标签,选择MFCAppWizard(exe)的项目类型,在工程框中输入项目名Ex_DlgCtrls(2) 单击确定按钮,在出现的“Step 1”对话框中选择“基本对话框)”应用程序类型,单击完成按钮,创建一个默认的基于对话框的应用程序项目。(3)
2、将项目工作区切换到ClassView页面,展开CEx_DlgCtrlsDlg类,右击CEx_DlgCtrlsDlg类名,弹出如图所示的快捷菜单。 (4) 从快捷菜单中选择Add Member Variable,出现如图所示的对话框,在Variable Type(变量类型)编辑框中输入CButto n(MFC按钮类),在Variable Name(变量名) 编辑框中输入要定义的CButton类对象名m_btnWnd。(5) 单击OK按钮,这样Visual C+就会自动在CEx_DlgCtrlsDlg 类中添加该成员变量。 在项目工作区的ClassView页面中,双击OnInitDialog函数名
3、,在该函数中添加下列代码:BOOL CEx_DlgCtrlsDlg:OnInitDialog()CDialog:OnInitDialog();m_btnWnd.Create("你好", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(20, 20, 120, 60), this, 201); / 创建CFont *font = this->GetFont(); / 获取对话框的字体m_btnWnd.SetFont(font); / 设置控件字体return TRUE; / return TRUE unless you set
4、the focus to a control (6) 编译并运行,结果如图所示程序2:映射控件消息1. 在MFC中,映射一个控件消息是非常简便的,如下面的过程是对新添加的按钮控件映射BN_CLICKED(单击)消息。将项目工作区窗口切换到ResourseView页面,双击Dialog资源下的标识IDD_EX_DLGCTRLS_DIALOG,打开该对话框资源模板。删除“TODO: 在这里设置对话控制。”控件,添加一个按钮控件,保留其默认属性。如图所示。 2 按快捷键Ctrl+W,打开MFC ClassWizard对话框,查看“Class name”列表中是否选择了CEx_DlgCtrlsDlg,
5、在IDs列表中选择IDC_BUTTON1,这是添加按钮后,系统自动为此按钮设置的默认标识符,然后在Messages框中选择BN_CLICKED消息。3 单击Add Function按钮或双击BN_CLICKED消息,出现“Add Member Function”对话框,在这里可以输入成员函数的名称,系统默认的函数名为OnButton1。4 单击OK按钮,在MFC ClassWizard的“Member functions”列表中将列出新增加的成员数。在此成员函数中添加下列代码:void CEx_DlgCtrlsDlg:OnButton1() MessageBox("你按下了"
6、;Button1"按钮!");5.编译并运行,当单击Button1按钮时,就会执行OnButton1函数,弹出一个消息对话框。这就是按钮BN_CLICKED消息的映射过程,其他控件的消息也可以类似操作。运行结果:程序3:写一个单文档程序,用菜单命令打开一个对话框,通过该对话框中的红色,绿色,蓝色单选按钮选择颜色,在视图中绘制不同颜色的矩形。步骤:1、新建一个单文档,并在菜单栏里新建一个菜单,如图:2,新建一个对话框类,在其中添加控件,如图:3、创建一个对话框类CFuxuanDlg 。给类添加成员变量,如图:4,进入Class Wizard 。选择对话框类CFuxuanDlg
7、。分别选择ID 为IDC_BLUE、IDC_GREEN、IDC_RED,添加函数如下:void CFuxuanDlg:OnRed() m_red = IsDlgButtonChecked(IDC_RED);UpdateWindow();void CFuxuanDlg:OnGreen() m_green = IsDlgButtonChecked(IDC_GREEN);UpdateWindow();void CFuxuanDlg:OnBlue() m_blue = IsDlgButtonChecked(IDC_BLUE);UpdateWindow();5,进入Class Wizard 。选择对话框
8、类E3View。分别选择ID 为ID_OPENDLG。添加函数如下:void CE3View:OnOpendlg() CFuxuanDlg f;f.DoModal();COLORREF color = RGB(f.m_red? 255 : 0 , f.m_green? 255 : 0 , f.m_blue? 255 : 0 );CPen newpen, *oldpen;CClientDC dc(this); newpen.CreatePen(PS_SOLID,2,color);oldpen = dc.SelectObject(&newpen); dc.Rectangle(200,200
9、,300,300);dc.SelectObject(oldpen);6、在E3View.cpp类的头文件后面加入:#include "FuxuanDlg.h"运行结果: 程序4:写一个单文档程序,添加一个工具栏按钮。单击该按钮弹出一个对话框,通过该对话框中的红色,绿色,蓝色复选框选额颜色,在视图中输出一行文本。步骤:1, 在程序3 的基础上,添加一个工具栏按钮,如图:2、进入Class Wizard 。选择对视图类E3View。选择ID 为ID_FILENEW。添加函数如下void CE3View:OnFileNew() CFuxuanDlg f;f.DoModal();C
10、OLORREF color = RGB(f.m_red? 255 : 0 , f.m_green? 255 : 0 , f.m_blue? 255 : 0 );CDC* pDC = GetDC();pDC->SetTextColor(color);pDC->TextOut(50,50,"这是程序四的一行文本!");运行结果: 程序5:写一个对话框程序,根据用户从列表框中选择的线条样式,在对话框中绘制一个矩形。线条样式有水平线,垂直线,向下斜线,十字线等四种画刷。步骤:1,新建一个对话框程序,并添加控件,如图:2、在对话框类中添加成员变量,如图:3,在E6Dlg.
11、h中添加 public:CRect m_sample;4、进入Class Wizard。选择对话框类CE51Dlg.cpp。分别选择选择WM_INITDIALOG、WM_DESTROY、LBN_SELCHANGE。添加函数如下:BOOL CE51Dlg:OnInitDialog() m_list.AddString("水平线");m_list.AddString("垂直线");m_list.AddString("向下斜线");m_list.AddString("十字线");GetDlgItem(IDC_SAMPLE
12、) -> GetWindowRect(&m_sample);ScreenToClient(&m_sample);int Border = (m_sample.right - m_sample.left)/6;m_sample.InflateRect(-Border,-Border);return TRUE; / return TRUE unless you set the focus to a controlvoid CE51Dlg:OnSelchangeList1() int index = m_list.GetCurSel(); int HatchStyle = HS
13、_VERTICAL , HS_DIAGCROSS , HS_HORIZONTAL , HS_FDIAGONAL ; CDC* p = GetDC(); CBrush* bold,bnew; bnew.CreateHatchBrush(HatchStyleindex,RGB(0,0,0); bold = p->SelectObject(&bnew); p->Rectangle(&m_sample); p->SelectObject(bold); bnew.DeleteObject();void CE51Dlg:OnDestroy() CDialog:OnDest
14、roy();for(int index = m_list.GetCount()-1 ; index >= 0 ; index-)delete m_list.GetItemDataPtr(index);运行结果:程序6:用组合框取代列表框,实现程序5一样的功能。步骤:1,新建一个对话框程序,并添加控件,如图:2、 在对话框类中添加成员变量,如图:3,在E6Dlg.h中添加 public:CRect m_sample;4、进入Class Wizard。选择对话框类CE6Dlg.cpp。分别选择选择WM_INITDIALOG、WM_DESTROY、CBN_SELCHANGE。添加函数如下BOO
15、L CE6Dlg:OnInitDialog()./ TODO: Add extra initialization herem_combo.AddString("水平线");m_combo.AddString("垂直线");m_combo.AddString("向下斜线");m_combo.AddString("十字线");GetDlgItem(IDC_SAMPLE) -> GetWindowRect(&m_sample);ScreenToClient(&m_sample);int Border
16、 = (m_sample.right - m_sample.left)/6;m_sample.InflateRect(-Border,-Border);return TRUE; / return TRUE unless you set the focus to a controlvoid CE6Dlg:OnDestroy() CDialog:OnDestroy(); for(int index = m_combo.GetCount()-1 ; index >= 0 ; index-)delete m_combo.GetItemDataPtr(index);void CE6Dlg:OnSelchangeCombo1() int HatchStyle = HS_VERTICAL , HS_DIAGCROSS , HS_HORIZONTAL , HS_FDIAGONAL ;int index = m_combo.GetCurSel();CDC* p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全培训经费格式课件
- 内科护理:结肠息肉生成后的肠道准备
- 2026年湖南汽车工程职业学院单招职业技能笔试备考题库带答案解析
- 2026年山东经贸职业学院高职单招职业适应性测试备考试题带答案解析
- 消毒水安全知识培训课件
- 安全培训系统会计处理课件
- 2026年天津艺术职业学院高职单招职业适应性测试参考题库带答案解析
- 消毒供应室新技术
- 安全培训类主持词课件
- 2026年铁门关职业技术学院高职单招职业适应性测试备考试题带答案解析
- 模切管理年终工作总结
- 杉木容器育苗技术规程
- 售后工程师述职报告
- 专题12将军饮马模型(原卷版+解析)
- 粉刷安全晨会(班前会)
- (中职)中职生创新创业能力提升教课件完整版
- 部编版八年级语文上册课外文言文阅读训练5篇()【含答案及译文】
- 高三英语一轮复习人教版(2019)全七册单元写作主题汇 总目录清单
- 路基工程危险源辨识与风险评价清单
- NB-T+10131-2019水电工程水库区工程地质勘察规程
- 大学基础课《大学物理(一)》期末考试试题-含答案
评论
0/150
提交评论