ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:909.40KB ,
资源ID:5999173      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5999173.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MFC的对话框程序v2.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MFC的对话框程序v2.docx

1、基于MFC的对话框程序v2基于MFC的对话框程序一、利用AppWizard应用程序向导生成程序框架新建项目,选择“MFC”模板中的“MFC 应用程序”,给项目一个名称,如Figure 1所示。Figure 1 新建项目在“MFC应用程序向导”的“应用程序类型”中选择“基于对话框”;在“用户界面功能”中勾选“最小化框”与“最大化框”复选框。其他,默认。最后点击完成。如Figure 2,Figure 3所示。Figure 2Figure 3在Figure 3中,可在“对话框标题”中更改对话框的标题。此处采用默认的MyDlg。生成的初始项目,如Figure 4所示。Figure 4经常用到的菜单、视

2、图等在Figure 4中用红框已标出。接着删掉Figure 4中的“确定”与“取消”按钮,在图中已用绿框框出。然后选中Figure 4中的“TODO:在此放置对话框控件”,右键,选择属性。在弹出的对话框中找到Caption,将其值改为姓名和学号,同时将该对话框控件移动至顶端,见Figure 5。Figure 5二、添加控件与相关程序如果当前工作处于设计对话框时,“工具箱”窗口就会给出各种VC+提供的常用控件。如果找不到“工具箱”,可在“视图”菜单中选择“工具箱”。(其他视图找不到时,也可按这种方式调出。)“视图”菜单及“工具箱”窗口,在Figure 4中顶端和右端的红框中可见。如果选择“工具箱

3、”后,看不到任何控件,请看看程序是否处于调试状态;如果处于调试状态,请退出调试状态再试试。1、添加按钮控件选择“资源视图”,双击“IDD_MYDLG_DIALOG”,再选择“工具箱”,找到“Button”控件,拖至对话框“MyDlg”的合适位置,如Figure 6所示。“资源视图”可在“视图”菜单中调出,也可在Figure 4中低端红框标出的位置找到。Figure 6更改Button1的按钮标题为“按钮”。在Button1的“属性”对话框中设置“Caption”的值为“按钮”。2、添加静态文本控件(Static Text)。和添加按钮控件一样,在适当的位置添加静态文本控件,将其Caption的

4、值改为空,将其ID改为“IDC_STATIC1”。(注意。采用默认的ID“IDC_STATIC”,将不可以为控件添加一些变量。)3、添加静态文本框变量。选中上面添加的静态文本框,右键,选择“添加变量”,“添加成员变量向导”如Figure 7所示,在类别中选择Value,在变量类型中选择“CString”,再给变量取一个名称,如m_static_str1,最后点击完成。此时,在“MyDlgDlg.h”文件中,可见CMyDlgDlg类中增加了一个数据成员m_static_str1。Figure 74、添加按钮事件处理程序。选中“按钮”控件,右键,选择“添加事件处理程序”。在弹出的“事件处理程序向导

5、”界面中,按Figure 8设置消息类型为“BN_CLICKED”,类列表为“CMyDlgDlg”,函数处理程序名称为“OnBnClickedButton1”,最后点击“添加编辑”,向导会自动退出,然后转动“MyDlgDlg.cpp”文件中“OnBnClickedButton1( )”函数处。在该函数处内部按Figure 9添加代码。运行程序,点击按钮试试。注1,当某控件对应的变量值发生变化时,需要用UpdateData(FALSE)更新控件显示内容,否则控件仍为原来的值。注2,若要删除某个事件函数,选择“项目”菜单中的“类向导”(如果项目菜单中没有类向导,切换到“资源视图”,再选择“项目”即

6、可看到“类向导”),按Figure 10中选择想要删除的处理程序。Figure 8Figure 9Figure 105、添加编辑框(Edit Control)。仿照3中的说明,给Edit Control添加对应的字符串变量m_edit_str1。接着在按钮按下对应的函数处(双击“按钮”可跳转至该处)按4中添加相应代码,见Figure 11。Figure 116、添加单选框(Radio Button)。添加两个Radio Button到对话框中,分别与文本框和静态文本框对齐。接着添加Group Box控件,该控件只是为了美观。按Figure 12更改添加控件的Caption。将第一个单选框的Gr

7、oup的属性为true,同时为其添加bool型变量m_radio_bool,见Figure 13。和Figure 11一样,给按钮添加相应的代码,见Figure 14。注1,“UpdateData();”函数的默认参数为TRUE,当为TRUE时,表示从控件传输数据给对应的变量;当为FALSE时,表示从变量传输给对应的控件。注2,Figure 12中顶端红框标出的工具栏可以用于控件的布局,如对齐等。Figure 12Figure 13Figure 147、添加多选框(Check Box)。更改其Caption为“是否显示按钮”。添加bool型变量m_check_bool。在OnBnClicked

8、Button1()函数处添加相应代码,见Figure 15。Figure 158、添加Slider Control。更改其Auto Ticks和Tick Marks的值为True,接着给控件添加整型变量m_slider_int,将在编辑框中显示它的值。添加编辑框(Edit Control)控件,给它添加字符串型变量m_edit_str2,然后给该控件添加事件函数,选择NM_CUSTOMDRAW(当用户拖动滚动条时,该函数响应),函数名默认,给该函数添加相应代码,见Figure 17。Figure 16Figure 179、添加Combo Box控件添加完毕后,更改其Data属性的值为“Red

9、Duck;Black Duck;Green Duck”。(以英文分号间隔。)10、添加一些其他控件。添加完控件后,该对话框如Figure 18所示。Figure 18给Combo Box控件添加整型变量m_combo_int,同时给其消息“CBN_SELCHANGE”添加事件处理函数“OnCbnSelchangeCombo1()”,给该函数添加代码,见Figure 19。Figure 19给新添加的编辑框(Edit Control)控件添加整型变量m_edit_int1,给添加的Spin Control控件的“UDN_DELTAPOS”添加处理函数“OnDeltaposSpin1”,添加相应的

10、代码,见Figure 20。Figure 20注1,在运行中Combo Box的控件可能与Combo Box的控件中Data属性的值顺序不一,为了两者一致,可将其Sort属性改为False。Figure 21三、添加与画图有关的控件及程序1. 在对话框中绘图。该功能在OnPaint()函数中实现。比如绘制一个矩形框区域,和绘制一条从坐标点(400,100)到(500,200)的斜线与从坐标点(400,150)到(500,150)的直线,程序如下:void CDlgEx:OnPaint() if (IsIconic() CPaintDC dc(this); / 用于绘制的设备上下文SendMes

11、sage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc(), 0); / 使图标在工作区矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; / 绘制图标 dc.DrawIcon(x,

12、y, m_hIcon); else CPaintDC dc(this); / 用于绘制的设备上下文 dc.Rectangle(400,100,500,200); /绘制矩形框 /画斜线 dc.MoveTo(400,100); dc.LineTo(500,200); /画水平直线 dc.MoveTo(400,150); dc.LineTo(500,150); CDialogEx:OnPaint(); 界面效果如图:2. 设置颜色。1) 添加控件,设置属性:Border为true,修改ID为IDC_CANVAS2) 添加Button按钮,Caption改为“颜色”,右击添加事件处理程序:添加按钮,

13、右击添加Control类型变量,如下:按钮右击添加事件处理程序:3) 在DlgExerDlg.h文件的类CDlgEx中定义两个COLORREF成员变量,public属性,用于指定直线与正弦曲线的颜色:4) 定义DrawLines()函数用于画框中的线,定义DrawSinFun(CDC* pCanvasDC, const CRect &rect)用于画正弦曲线,注意在DlgExerDlg.h中声明函数,在DlgExerDlg.cpp文件中实现函数,在定义DrawSinFun函数之前先在DlgExerDlg.h文件的开始位置定义如下两个全局变量:DrawLines函数与DrawSinFun函数实现

14、代码如下:int CDlgEx:DrawLines() / TODO: 在此添加控件通知处理程序代码 UpdateData(); / 获得绘图控件句柄和区域 CWnd *pCanvasWnd=GetDlgItem(IDC_CANVAS); CDC *pCanvasDC=pCanvasWnd-GetDC(); CRect rect; pCanvasWnd-GetClientRect(&rect); /绘制背景 CBrush br(RGB(200,255,255); pCanvasDC-FillRect(&rect,&br); /创建画笔 CPen NewPen; NewPen.CreatePen

15、(PS_SOLID,2,m_clrLines); CPen *OldPen; OldPen=pCanvasDC-SelectObject(&NewPen); /画线 pCanvasDC-MoveTo(rect.TopLeft(); pCanvasDC-LineTo(rect.TopLeft()+CPoint(100,50); pCanvasDC-MoveTo(rect.TopLeft()+CPoint(100,50); pCanvasDC-LineTo(rect.TopLeft()+CPoint(200,50); pCanvasDC-MoveTo(rect.TopLeft()+CPoint(2

16、00,50); pCanvasDC-LineTo(rect.BottomRight(); /恢复画笔 pCanvasDC-SelectObject(OldPen); /创建画笔 CPen SinPen; SinPen.CreatePen(PS_SOLID,2,m_clrSinCurve); OldPen=pCanvasDC-SelectObject(&SinPen); /画出Sin函数 DrawSinFun(pCanvasDC,rect); /恢复画笔 pCanvasDC-SelectObject(OldPen); /释放资源 pCanvasDC-Detach(); pCanvasWnd-De

17、tach(); UpdateData(FALSE); return 0;void CDlgEx:DrawSinFun(CDC* pCanvasDC, const CRect &rect) /根据画布规定起始点和放大倍数 int BaseY=rect.TopLeft().y+rect.Height()/2; int BaseX=rect.TopLeft().x; int yScale=rect.Height()/2; int xScale=rect.Width()/7; /计算sin(x),并画出离散的直线 double xLEN; for (int i=0; iMoveTo(p1); pCan

18、vasDC-LineTo(p2); 5) 添加颜色按钮的事件处理程序。在DlgExerDlg.cpp文件中找到如下函数:CDlgEx:OnBnClickedButton3(),在对应的地方添加如下代码:void CDlgEx:OnBnClickedButton3() / TODO: 在此添加控件通知处理程序代码 / 打开颜色对话框 CColorDialog ColorDlg; if(ColorDlg.DoModal()=IDOK) m_clrLines=ColorDlg.GetColor(); DrawLines();6) 添加MFC Color Button按钮的事件处理程序。在DlgExe

19、rDlg.cpp文件中找到如下函数:CDlgEx:OnBnClickedMfccolorbutton1(),在对应的地方添加如下代码:void CDlgEx:OnBnClickedMfccolorbutton1() / TODO: 在此添加控件通知处理程序代码 /更新变量 UpdateData(); /获得颜色 m_clrSinCurve=m_clrBtn.GetColor(); /画线 DrawLines();完成以上操作后,运行,界面效果如下:四、添加控件及相关程序实现文件读写1. 首先在DlgExerDlg.h文件中添加CDlgEx类公有成员变量m_nIndex:在资源视图的IDD_DL

20、GEXER_DIALOG对话框下添加Button按钮,在属性中修改Caption为“存储”。右击添加事件处理程序如下:在相应位置处添加事件处理程序代码实现数据文件输出:1) 在DlgExerDlg.cpp文件开始处添加如下代码:2) 在CDlgEx:OnBnClickedButton4()函数下添加如下代码实现数据文件的输出:void CDlgEx:OnBnClickedButton4() using namespace std; / 打开文件流 ofstream OutFile(TextFile.txt,ios:out); if (OutFile) /判断是否打开成功 OutFilem_nIndex m_nIndex; /读取数据 +m_nIndex; InFile.close();完成以上程序后,运行程序,界面如下,点击按钮即可在项目名同名文件夹下生成文件“TextFile.txt”,点击按钮即可读取文件“TextFile.txt”中数据赋值给变量m_nIndex

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1