VC++实用编程课程实验指导书_第1页
VC++实用编程课程实验指导书_第2页
VC++实用编程课程实验指导书_第3页
VC++实用编程课程实验指导书_第4页
VC++实用编程课程实验指导书_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vc+实用编程课程实验指导书目录vc+实用编程课程实验指导书1第一部分上机实验的指导思想和要求1第二部分、实验内容2实验1mfc应用程序(一)2实验2类的定义与实现(一)7实验3类的定义与实现(二)8实验4mfc应用程序(二)9实验5菜单的创建与使用14实验6工具栏与状态栏的创建与使用18实验7输出文本与画图25实验8画图28实验9无模式对话框36实验10用户登录对话框42实验11对话框的创建与使用(一)51实验12对话框的创建与使用(二)52实验13对话框的创建与使用(三)52实验14数据库编程57第一部分上机实验的指导思想和要求,上机实验的目的学习vc+实用编程课程不能满足于“懂得了”,满

2、足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果。上机实验的目的,绝不仅是为了验证教材和讲课的内容,或者验证自己所编写的程序的正确与否。学习程序设计,上机实验的目的是:()加深对讲授内容的理解,尤其消息处理函数及类的添加及使用方法。()熟悉所用的操作系统。()学会上机调试程序。通过反复上机掌握根据出错信息修改程序的方法。,上机实验前的准备工作。()了解所用的计算机系统的性能和使用方法。()复习和掌握与本实验有关的教学内容。()准备好上机所需的程序,切忌不编程序或抄别人的程序去上机。()对程序中出现的问题应事先估计,对程序中自己有疑问

3、的地方应先作上记号,以便上机时给予注意。()准备好调试程序和运行程序所需的数据。,上机实验的步骤上机实验应一人一组,独立实验。上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。尤其对“出错信息”,应善于分析判断。第二部分、实验内容实验1mfc应用程序(一)一、实验目的与要求掌握使用mfc应用程序向导创建应用程序的方法,掌握使用visual c+6.0编辑c语言程序的方法,掌握win32 application应用程序的创建方法。二、实验内容,使用vc创建一个仿射密码的加密与解密的c源程序,并修改程序使用另一加密与解密密钥。,使用vc创建一个win32 applicatio应用程序

4、3,使用应用程序向导appwizard建立一个单文档的应用程序4,创建一个c程序,用于从键盘输入一组整数,输出排序后的结果。三、操作提示通过执行“开始/程序/microsoft visual studio 6.0/ microsoft visual c+6.0”进入vc6.01.创建c程序(或c源程序)执行“文件/新建”命令选择“文件”选项卡中的“c+ source file”选择文件的保存目录输入文件名单击“确定”按钮输入源程序编译运行仿射密码的加密与解密的c源程序#include stdio.h#include string.hvoid main()char str81,str181,st

5、r281;unsigned int i;/printf(请输入明文:);/gets(str);strcpy(str,she fell in love with);for(i=0;i=a&stri=a&stri=z)str1i=(3*(stri-97)+13)%26+97;else str1i=stri;str1i=0;for(i=0;i=a&str1i=z)str2i=9*(str1i-65-13)%26+65;/3关于模26的逆元为9if(str2i=a&str1i=z)str2i=9*(str1i-97-13)%26+97;if(str2i97) str2i+=26;else str2i=

6、str1i;str2i=0;printf(n明文为:%s,str);printf(n加密结果为:%s,str1);printf(n解密结果为:%sn,str2);修改密钥,如使用密钥7,17修改程序(提示7关于模26的逆元为15,17关于模26的逆元为23等)2. win32 application(基于windows的编程)(1)通过“文件/关闭工作区”命令关闭当前工作区,然后执行“文件/新建”命令选择“工程”选项卡中的“win32 application”选择文件的保存目录输入工程名:hello单击“确定”按钮单击“完成”单击“确定”(2)执行“文件/新建”命令选择“文件”选项卡中的“c+

7、 source file”输入文件名,勾选“添加到工程”(如下图所示)单击“确定”输入源程序#include/使用mfc类库中的数据类型、类、函数及全局变量等class chelloapp:public cwinapp/定义应用程序基类的派生类public:/公有成员virtual bool initinstance();/重载cwinapp中的初始化成员函数;chelloapp helloapp;/定义应用程序实例class chellowindow:public cframewnd/定义主窗口类cstatic* cs;public:chellowindow();/主窗口类构造函数;bool

8、 chelloapp:initinstance()/应用程序初始化函数m_pmainwnd=new chellowindow();/初始化主窗口,并用m_pmainwnd指向它m_pmainwnd-showwindow(m_ncmdshow);/显示主窗口m_pmainwnd-updatewindow();/刷新主窗口return true;chellowindow:chellowindow()/主窗口类构造函数create(null,hello word!,ws_overlappedwindow,crect(0,0,200,200);/创建主窗口cs=new cstatic();cs-cre

9、ate(hello world,ws_child|ws_visible|ss_center,crect(50,80,150,150),this);(3)为应用程序选择mfc类库执行“工程/设置”命令,在general标签的microsoft foundation classes组合框中选择“use mfc in a shared dll”3,使用应用程序向导appwizard建立一个单文档的应用程序通过“文件/关闭工作区”命令关闭当前工作区,然后通过“文件/新建”命令打开新建对话框选择“工程”选项卡,选择“mfcappwizard(exe)”选择工程保存位置,输入工程名:exp1_3单击“确定

10、”在step中选择单个文档后单击“下一步”在step6中选择视图类的基类为ceditview运行4,创建一个c程序,用于从键盘输入一组整数,输出排序后的结果。操作方法与第1题相同,排序方法可使用起泡法排序。实验2类的定义与实现(一)一、实验目的与要求掌握类的定义与实现方法,能用类编写简单的c+程序二、实验内容.定义点类point,包含:(1)私有成员变量x,y,类型为int;(2)私有成员变量quantity,表示图书数量,类型为int;(3)公有成员变量price,表示图书的单价,类型为double;(4)公有成员函数void set_x(int k); void set_y(int k);

11、 int get_x(); int get_y(); point(int,int);分别用于给x,y赋值和取得x,y的值,设计一个main函数在主函数中定义point类的两个对象,第1个对象在定义时给成员变量x,y赋初值,第2个对象调用set_x和set_y给成员变量赋值,然后分别调用get_x()和get_y()函数获得x,y的值并输出2. 定义一个描述角度的类cangle,包含的内容如下:(1)私有成员变量valuw,表示角度,类型为double;(2)公有成员函数setvalue,实现功能是使用形参为value赋值。声明为 void setvalue(double);(3)公有成员函数g

12、etcos,实现功能是计算余弦值,并作为返回值返回。声明为 double getcos();编写实现如下功能:定义一个cangle类对象deg,调用成员函数设置deg的角度为30度,调用成员函数计算并输出deg的余弦值。三、操作提示1.创建一个csource程序然后输入程序代码。代码可参考“第2章 面向对象程序设计的概念.ppt”文件的第31、34、38张幻灯片。实验3类的定义与实现(二)一、实验目的与要求掌握使用应用程序向导创建应用程序的方法,掌握派生类的定义与实现方法,能用类编写简单的c+程序二、实验内容.定义一个时间类time,time类的内容包含(1)受保护类型(protected)成

13、员变量hour,表示小时,类型为int;(2)受保护类型(protected)成员变量min,表示分钟,类型为int;(3)受保护类型(protected)成员变量sec,表示秒,类型为int;(4)公有成员(public)函数settime,功能为用参数为hour,min,sec赋值。声明为:void settime(int,int,int);(5)公有成员(public)函数showtime,功能为以24小时制显示时间值。声明为:void showtime ( );2.定义派生类newtime,该类为time类的public方式派生类。在派生类中定义两个重载成员函数如下:(1)声明为voi

14、d showtime ( );实现功能为以24小时制显示当前的hour值。(2)声明为void showtime (int flag );实现功能为当flag为0时,以12小时制显示当前的hour值;当flag为其他值时,以24小时制显示当前的hour值3.在main函数中实现如下功能:(1)创建time类的对象time,以时间“23:34:45”为time赋值;(2)调用成员函数showtime显示时间;(3)创建newtime类对象nt,并在time类和newtime类中定义适当的构造函数,实现用对象time的时间值为nt初始化;(4)分别以24小时制和12小时制输出nt的hour值。运行

15、无误后将源程序和运行结果截图复制本文的第四、五部分的1中4.修改程序:设置time类的成员函数showtime()为虚函数,在newtime类中重载该函数,以12小时制显示时间值,并给出上下午信息。在main函数中定义基类指针(time类指针)basetime,用此指针分别指向对象time和nt,依次调用showtime输出。运行无误后将源程序和运行结果截图复制本文的第四、五部分的2中三、操作提示通过执行“开始/程序/microsoft visual studio 6.0/ microsoft visual c+6.0”进入vc6.0创建一个csource程序然后输入程序代码。派生类newti

16、me的定义格式为:class newtime:public time.派生类构造函数:newtime(int h,int m,int s):time(h,m,s)基类构造函数要包括带参构造函数和不带参构造函数:time();time(int h,int m,int s)hour=h;min=m;sec=s;虚函数的定义格式为:virtual void showtime ( ) 基类指针basetime指向派生类对象格式:basetime=&nt;基类指针basetime调用派生类成员函数格式:(newtime*)basetime)- showtime ( );实验4mfc应用程序(二)一、实验

17、目的通过实验掌握编写win32 application的基本方法,掌握在该类程序中添加菜单、添加和使用对话框的方法。二、实验内容1,创建一个基于win32 application的工程,工程名为ex3_1,用于完成下列功能:(1)输出文本串“hello vc+”(2)在视图中央输出文本“开始学习vc!”(3)添加2个对话框,并使用菜单调用这2个对话框。2,创建一个单文档的mfc应用程序ex3_1,并实现功能:当在视图中双击鼠标右键或单击左键时,弹出对话框,显示鼠标的坐标。3,不使用向导编写一个mfc应用程序。三、操作提示1,s1:使用向导生成一个基于win32 application的工程ex

18、3_1,并在step 1 of 1中选择“一个典型的 “hello world!”程序”s2:修改输出文本串“hello world!”为“hello vc+”:选择resoureview面板,打开“string table”,双击“字符串表”,双击“ids_hello”,修改其标题为“hello vc+”s3:输出文本串:选择fileview,双击source files下的ex3_1.cpp文件,找到wndproc函数,在其case wm_paint:部分的drawtext(hdc, szhello, strlen(szhello), &rt, dt_center);在该语句后面添加如下代

19、码:drawtext(hdc,开始学习vc+,12,&rt,dt_singleline|dt_center|dt_vcenter);s4:添加对话框:(1)插入对话框并修改其标题与id:在resoureview面板中,右击dialog,选择“插入dialog”命令,双击对话框,修改其标题为“我的对话框”,其id为idd_mydialog(2)添加菜单项并修改其id:在resoureview面板中,双击menu下的菜单条名:idc_ex3_1在右边的菜单编辑栏中单击“help”,双击其下面的虚框,在id栏中输入菜单id:idm_mydialog,在标题栏中输入标题:我的对话框(3)添加代码:打开

20、fileview面板,展开“source files”,双击“ex3_1.cpp”,找到函数wndproc函数,在该函数的case wm_command:部分的switch (wmid)中的代码case idm_about:dialogbox(hinst, (lpctstr)idd_aboutbox, hwnd, (dlgproc)about); break;后面添加如下代码:case idm_mydialog:/ idm_mydialog为菜单项“我的对话框”的iddialogbox(hinst, (lpctstr)idd_mydialog,hwnd,(dlgproc)mydialog);b

21、reak;/上面代码中的idd_mydialog为对话框id,mydialog为调用的函数名(4)在ex3_1.cpp文件的最后添加对话框的消息处理函数:函数内容与其上最后一个函数相同,只函数名为mydialog。将上一个的函数内容复制到最后面,并将函数名about改为mydialog(5)在ex3_1.cpp的头部的lresult callbackabout(hwnd, uint, wparam, lparam);语句后面添加对mydialog函数的声明:lresult callbackmydialog(hwnd, uint, wparam, lparam);s5:编译运行程序s6:重复s4

22、的操作添加另一个对话框2,s1:创建一个单文档mfc程序。关闭工作区后执行“文件/新建”命令,选择“mfc appwiard(exe)”,工程名为ex3_2,保存位置为d:c,并在第一步中选择“单文档”后单击“完成”s2:按组合键:ctrl+w,或执行“查看/建立类向导”命令打开classwizards3:在message map标签中的class name栏中选择cex3_2view类,在messages栏中找到wm_rbuttondblclk并双击(或单击选择该消息后单击右边的“add funtion”按钮)s4:单击“edit code”按钮,然后在该函数的/todo注释后添加如下代码:

23、cstring str;str.format(now:%d,%d,point.x,point.y);messagebox(str);s5:编译运行,并双击右键s6:使用同样的方法为单击左键wm_lbuttondown添加同样的操作3,(1)创建一个新工程关闭当前工作区,执行“文件/新建”命令,选择“工程”选项卡,选择win32 application,输入工程名ex3_3,并在step 1 of 1中选择“一个空的工程”,单击“完成”(2)增加一个头文件到项目:在vc中执行菜单命令“工程/增加到工程/新建”,在新建对话框中选择文件选项卡中的“c/c+ header file;”,勾选“添加到工

24、程”,输入文件名“minapp”,然后单击确定。如下图所示(3)编辑头文件。在头文件中输入下面内容:#include class cmyapp:public cwinapp public : virtual bool initinstance();class cmainframe: public cframewnd;(4)添加一个实现文件到项目在vc中执行菜单命令“工程/增加到工程/新建”,在新建对话框中选择文件选项卡中的“c/c+ source file;”,勾选“添加到工程”,输入文件名“minapp”,然后单击确定。如下图所示(5)编辑源程序文件。输入下面内容:#include mina

25、pp.hcmyapp myapp;bool cmyapp:initinstance() m_pmainwnd=new cmainframe;(cmainframe*)m_pmainwnd)-create(null,the mfc application);m_pmainwnd-showwindow(m_ncmdshow);return true;(6)修改项目设置。在vc中执行菜单命令“工程/设置”,在常规选项卡中的“microsoft基础类”栏中选择第二项。如下图所示:(7)运行程序,并复制运行结果实验5菜单的创建与使用一、实验目的熟悉使用appwizard创建mfc应用程序的方法,熟悉菜单

26、资源的创建与使用方法。二、实验内容1,文本编辑器的实现。要求文本编辑器可以在视图窗口内接收键盘输入并编辑文本,能将文本存盘并从磁盘装入文本文件;具有撤消操作、选择文本区域、复制、剪切、粘贴、查找、替换文本等功能,基本实现类似记事本的功能。工程名为ex5_1,文件保存在d:c下2,创建一个包含“文件”、“编辑”和“画图”3个菜单的单文档应用程序。其中“文件”菜单包含“打开”、“新建”、“保存”和“退出”基本功能菜单项,“编辑”菜单包含“复制”、“粘贴”和“查找”功能菜单项,“画图”菜单包含“矩形”、“椭圆”、“允许画图”和“禁止画图”菜单项。另外,“矩形”、“椭圆”、“允许画图”和“禁止画图”为

27、相互切换选中的菜单项,要求增加选中标记“”,且当“禁止画图”被选中时,画图菜单中的“矩形”和“椭圆”为无效,即为灰色禁用状态,否则为有效。工程名为ex5_2,文件保存在d:c下三、操作提示1,操作步骤s1:使用appwizard向导生成应用程序框架:选择单文档,在mfcappwizardstep 6 of 6中选择视图类的基类为ceditviews2:增加菜单项在编辑菜单中添加:全选、查找、替换等菜单项,其id及标题见下表菜单id菜单项名称id_edit_select_all全选(&a)tctrl+aid_edit_find查找(&f)ctrl+fid_edit_replace替换(&r)tc

28、trl+h添加菜单项方法:在资源编辑器窗口中双击菜单资源id,双击相应菜单下的空栏并输入其id和标题s3:添加菜单项的快捷键(accelerator)在资源面板中打开快捷键编辑器(accelerator) ,双击idr_mainframe,双击底部的空框,输入id和快捷键,如下图所示:要添加的快捷键为:菜单id快捷键id_edit_select_allctrl+aid_edit_findctrl+fid_edit_replacectrl+hs4:修改文本编辑器的默认扩展名为.txt在字符串编辑器(string table)中双击idr_mainframe修改其第4、5个子串,第4个子串为保存文

29、件时文件类型中显示的内容,第5个子串为扩展名:.txt修改前的标题为:ex5_1nnex5_nnnex51.documentnex5_ document修改后的标题为:ex5_1nnex5_nex5_1文件(*.txt)n.txtnex51.documentnex5_ document2,(1)建立一个名称为ex5_2的工程(2)打开菜单编辑器,将文件菜单和编辑菜单不需要的菜单项删除,删除显示菜单和帮助菜单,在编辑菜单中添加查找菜单项(id:id_edit_find,标题:查找(&f)tctrl+f)(3)在cex5_2view类中增加两个成员变量m_enable和m_shape。操作方法如下

30、:s1:在class view面板中选择cex5_2view,从快捷菜单中选择add member variable,变量类型为bool,access为public,变量名分别为m_enable和m_shapes2:在cex5_2view类的构造函数中给其赋初值true,如下所示(在class view面板的cex5_2view类中双击函数cex5_2view(),然后添加代码)cex5_2view:cex5_2view()m_enable=true;m_shape=true;(4)添加画图菜单,在resourceview面板中展开menu,双击idr_mainframe,添加一个画图菜单,在

31、该菜单下添加下面4个菜单项:id标题id_draw_rect画矩形id_draw_circle画圆id_draw_enable允许画图id_draw_disable禁止画图结果如下图所示:(5)为画图菜单中的4个菜单项添加添加命令消息command的消息处理函数和更新菜单显示消息update_command_ui的消息处理函数,共8个函数。操作方法如下:s1:通过“查看/建立类向导”命令打开建立类向导窗口s2:在class name中选择cex5_2views3:在object ids中选择id_draw _circles4:在messages中双击command和update_command

32、_ui重复s3和s4为第(4)部分添加的其余id添加command和update_command_ui消息处理函数(6)添加代码。添加下面蓝色部分代码当m_enable为false时画圆与画矩形为灰色,否则为可用当m_shape为true时画圆,为false时画矩形void cex5_2view:ondrawrect() m_shape=true;/选择画矩形void cex5_2view:ondrawcircle() m_shape=false; /选择画圆void cex5_4view:ondrawenable() m_enable=true;/允许画图void cex5_2view:on

33、drawdisable() m_enable=false;/禁止画图void cex5_2view:onupdatedrawrect(ccmdui* pcmdui) pcmdui-enable(m_enable);/画矩形为可用或不可用pcmdui-setcheck(m_shape?true:false);/标记是否选中void cex5_2view:onupdatedrawcircle(ccmdui* pcmdui) pcmdui-enable(m_enable); /画圆为可用或不可用pcmdui-setcheck(m_shape?false:true); /标记是否选中void cex5

34、_2view:onupdatedrawenable(ccmdui* pcmdui) pcmdui-setcheck(m_enable?true:false); /标记是否选中void cex5_2view:onupdatedrawdisable(ccmdui* pcmdui) pcmdui-setcheck(m_enable?false:true); /标记是否选中思考题:如何将“允许画图”和“禁止画图”两个菜单项合并为一个菜单项?实验6工具栏与状态栏的创建与使用一、实验目的熟悉使用appwizard创建mfc应用程序的方法,熟悉向常用工具栏中添加工具按钮的方法,熟悉创建自定义工具栏和创建对话

35、框工具栏的方法,熟悉向状态栏添加窗格的方法。二、实验内容创建一个基于单文档的mfc应用程序,实现下面功能:1,向默认工具栏中添加实现文件操作的常规操作撤消与查找2,创建一个用户自定义工具栏,工具栏中实现显示问候语、显示版本和清除视窗内容的个按钮3,创建一个对话框工具栏,并向该工具栏中添加组合框、编辑框、复选框、命令按钮个工具按钮4,增加菜单项用于显示/隐藏工具栏5,调整状态栏的显示,能够追踪鼠标在视图中的坐标,显示shift键的按键状态三、操作步骤(一)向默认工具栏添加工具按钮1,创建一个单文档应用程序,程序名为ex6,其余使用默认设置2,在资源窗口中打开默认工具栏,添加两个工具,工具按钮的图

36、形使用汉字“撤”与“查”,分别为id_edit_undo与id_edit_find3,运行程序,将运行结果截图复制到第四部分的(一)中(二) 创建一个新的工具栏1,在资源面板中插入一个工具栏id_toolbar1,向该工具栏添加3个工具按钮,工具、按钮样式如下所示按钮id提示好id_view_hello显示您好n您好版id_ view_version显示版本信息n版本清id_ view_clear清屏n清屏2,为工具栏按钮添加相应的菜单项在在资源窗口中打开菜单栏,在查看菜单中添加三个菜单项:标题id提示您好id_view_hello显示您好n您好版本id_ view_version显示版本信息

37、n版本清屏id_ view_clear清屏n清屏3,为工具栏id_toolbar1指定关联的类:在资源面板中选择id_toolbar1工具栏,按ctrl+w打开新建类向导对话框,在弹出的对话框中选择“select an existing class,然后单击ok按钮,如下图所示选择cmainframe类为其关联的类4,为三个工具栏添加消息处理函数:在新建类向导对话框中在class name框中选择cex6view,在object ids中分别选择三个工具栏按钮id,为其添加command消息处理函数,如下图所示关闭新建类向导对话框5,在cex6view类中添加一个cstring类型成员变量:在

38、类资源面板中打开cex6view类,从快捷菜单中选择add member variable,如下图所示添加一个cstring型变量m_outstring,如下图所示:6,为3个消息处理函数添加如下代码(红色部分)void cex6view:onviewhello() / todo: add your command handler code herem_outstring=欢迎使用本系统!;this-invalidate(true);void cex6view:onviewclear() / todo: add your command handler code herem_outstring

39、=;this-invalidate(true);void cex6view:onviewversion() / todo: add your command handler code heremessagebox(ex6版本1.0!);7,在cex6view类的ondraw函数中添加如下代码(红色部分)void cex6view:ondraw(cdc* pdc)cex6doc* pdoc = getdocument();assert_valid(pdoc);/ todo: add draw code for native data herepdc-textout(1,1,m_outstring

40、);8,添加代码以装入工具栏在cmainframe类中添加一个ctoolbar类的变量(protected型):protected:ctoolbar m_toolbar1;在cmainframe:oncreate函数中添加如下代码(红色部分):m_wndtexttools.create(this,idd_texttools, ws_visible | cbrs_top| cbr int cmainframe:oncreate(lpcreatestruct lpcreatestruct)if (cframewnd:oncreate(lpcreatestruct) = -1)return -1;i

41、f (!m_wndtoolbar.createex(this, tbstyle_flat, ws_child | ws_visible | cbrs_top| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic) |!m_wndtoolbar.loadtoolbar(idr_mainframe)trace0(failed to create toolbarn);return -1; / fail to createif (!m_toolbar1.createex(this, tbstyle_flat, ws_child |

42、 ws_visible | cbrs_top| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dynamic) |!m_toolbar1.loadtoolbar(idr_toolbar1)trace0(failed to create toolbarn);return -1; / fail to createif (!m_wndstatusbar.create(this) |!m_wndstatusbar.setindicators(indicators, sizeof(indicators)/sizeof(uint)trace0(

43、failed to create status barn);return -1; / fail to create/ todo: delete these three lines if you dont want the toolbar to/ be dockablem_wndtoolbar.enabledocking(cbrs_align_any);enabledocking(cbrs_align_any);dockcontrolbar(&m_wndtoolbar);m_toolbar1.enabledocking(cbrs_align_any); dockcontrolbar(&m_too

44、lbar1);return 0;9,运行程序,将运行结果截图复制到第四部分的(二)中(三) 创建一个对话框工具栏,并向该工具栏中添加组合框、编辑框、复选框、命令按钮个工具按钮1,执行“插入”菜单中的“资源”命令,在插入资源对话框中按下图所示选择后单击“新建”按钮,插入一个对话框资源修改对话框的为idd_texttools2,向对话框中添加组合框控件(第一列第5行的控件),结果如下图所示单击组合框右边的向下的三角形按钮,拖动下边框中间的黑点,结果如下图所示右击编辑框,选择属性,选择data选项卡,输入组合框中的显示内容)输入一行后按ctrl+enter换行),结果如下图所示:3,依次向对话框中添

45、加编辑框(第二行第2列)、命令按钮(第三行第2列)、复选框(第四行第1列) 结果如下图所示4,添加代码以装入工具栏在cmainframe类中添加一个cdialogbar类的变量(public型):public:cdialogbar m_wndtexttools;在cmainframe:oncreate函数中添加如下代码(代码位置在(二)部分相应代码后面:m_wndtexttools.create(this,idd_texttools, ws_visible | cbrs_top| cbrs_gripper | cbrs_tooltips | cbrs_flyby | cbrs_size_dyn

46、amic,idd_texttools);m_wndtexttools.enabledocking(cbrs_align_any);dockcontrolbar(&m_wndtexttools);5,添加菜单以显示或隐藏工具条(1)在显示菜单中添加一用菜单项:用户工具栏id_view_show_toolbar(2)在新建类向导中在cmainframe类中添加该id的command消息和update_command_ui消息处理函数并依次添加代码: void cmainframe:onviewshowtoolbar() / todo: add your command handler code h

47、erem_wndtexttools.showwindow(m_wndtexttools.iswindowvisible()?sw_hide:sw_show); this-recalclayout();void cmainframe:onupdateviewshowtoolbar(ccmdui* pcmdui) / todo: add your command update ui handler code herepcmdui-setcheck(m_wndtexttools.iswindowvisible();6,运行程序,将运行结果截图复制到第四部分的(三)中(四) 增加一个状态栏窗格1,在资

48、源窗格中插入一个菜单,菜单名为dummymenu=在该菜单中增加一个菜单项:id: id_indicator_time 标题: time 提示:hh:mm:ss2,修改indicators数组在mainfrm.cpp中,增加indicators数组成员:id_indicator_time,3,修改时间显示,显示当前系统时间打开classwizard,选择cmainframe类,为id_indicator_timer的update_command_ui消息增加一个更新函数并添加如下代码:ctime time=ctime:getcurrenttime();int h,m,s;h=time.geth

49、our();m=time.getminute();s=time.getsecond();cstring stime;stime.format(%d:%d:%d,h,m,s);pcmdui-settext(stime);4,使用定时器实时更新时间显示(1)在cmainframe类的oncreate()函数的return 0;语句前增加如下代码settimer(1,100,null);/第1个参数为定时器的id,第2个参数为时间间隔(单位毫秒)(2)打开classwizard,在cmainframe类中,为cmainframe的 wm_timer消息,增加消息映射函数(不添加代码)5, 运行程序,

50、将运行结果截图复制到第四部分的(四)中实验7输出文本与画图一、实验目的熟悉使用系统字体色对话框的使用方法,掌握文本的输出方法和简单的画图方法。二、实验内容创建一个单文档mfc应用程序,实现下面功能 1,在ondraw函数中使用默认字体输入文本,画线、圆、矩形2,图添加一个“文本”菜单,包括下面三个菜单项标题id文本输出文本id_text_print颜色id_ text_color字体id_text_font选择颜色菜单项后调用系统颜色对话框选择颜色,选择字体菜单项后调用系统字体对话框选择字体,选择输出文本后用选择的颜色和字体输出一行文字。三、操作方法(一)在ondraw函数中使用默认字体输入文

51、本及画图1,建立一个名为draw的单文档的mfcappwizard(.exe)2,在ondraw函数中添加如下代码输出文本:pdc-textout(1,1,hello world!);3,在ondraw函数中添加如下代码画点/在坐标为100,100的位置上画红色点 pdc-settextcolor(rgb(255,0,0);pdc-setbkcolor(rgb(0,255,0);pdc-setpixel(cpoint(100,100),rgb(255,0,0);4,在ondraw函数中添加如下代码画线pdc-moveto(0,0);/在视图的左上角一个xpdc-lineto(100,100);

52、pdc-moveto(0,100);pdc-lineto (100,0); 5,在ondraw函数中添加如下代码画矩形 crect rect(0,0,100,100);/画一个长100、宽100的矩形pdc-rectangle(&rect); 6,在ondraw函数中添加如下代码画圆crect rect(0,0,100,100);/在矩形内画圆pdc-ellipse(&rect);crect rect(0,0,50,100);/在矩形内画椭圆pdc-ellipse(&rect); 或: pdc-ellipse(0,0,50,100); 7,在ondraw函数中添加如下代码画多边形cpoint poly4;/画一个平行四边形poly0=cpoint(0,0);poly1=cpoint(50,50);poly2=cpoint(50,100);poly3=cpoint(0,50);pdc-polygon(poly,4); (二)在一般函数中输出文本1,在主菜单中添加“文本”菜单,并添加下面三个菜单项标题id文本输出文本id_te

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论