Visual_C++编程实录(实验)

上传人:微*** 文档编号:168608726 上传时间:2022-11-11 格式:DOCX 页数:81 大小:489.67KB
收藏 版权申诉 举报 下载
Visual_C++编程实录(实验)_第1页
第1页 / 共81页
Visual_C++编程实录(实验)_第2页
第2页 / 共81页
Visual_C++编程实录(实验)_第3页
第3页 / 共81页
资源描述:

《Visual_C++编程实录(实验)》由会员分享,可在线阅读,更多相关《Visual_C++编程实录(实验)(81页珍藏版)》请在装配图网上搜索。

1、专业文档,值得收藏!实验 Visual C+ 6.0中文版开发环境实验目的和要求(1)熟悉Visual C+6.0的开发环境(工具栏及各种窗口)。(2)显不和隐藏工具栏。(3)用应用程序向导创建一个控制台应用项目Ex.Hello。(4)输入并编译个新的C+程序。实验准备和说明(1)在第一次上课时进行本次实验。(2)熟悉Windows 2000操作系统的环境和基本操作。(3)熟悉实验报告的书写格式,这里给出下列建议:实验报告采用A4大小纸张,封面一般包含实验目次、实验题目、班级、姓名、日期 和机构名称。报告内容一般包括实验目的和要求、实验步骤、实验思考和总结。需要指出 的是,实验步骤不是书本内容

2、的复制,而是自己结合实验内容进行探索的过程。教师也可 根据具体情况提出新的实验报告格式。(4)阅读下列关于Visual C+的说明:Visual C+是Microsoft公司推出的目前使用极为广泛的基于Windows平台的可视化编 程环境。Visual C+6.0是在以往版本不断更新的基础上形成的,由于其功能强大、灵活性 好、完全可扩展以及具有强有力的Internet支持,在各种C+语言开发工具中脱颖而出, 成为目前最为流行的C+语言集成开发环境。Visual C+ 6.0分为标准版、专业版和企业版3种,但其基本功能是相同的。Visual C+ 6.05中文版是在Visual C+6.0基础上

3、进行汉化的个版本,本书以此版本作为编程环境。 为统起见,本书仍称为Visual C+6.0,并以Windows 2000作为操作系统。专业文档,值得下载!COL |OVR iREADFl 不.阚枚文件1査我文件Visual C+实训实验内容和步骤标题栏一般有“最小化”、“最大化” 或“还原”創 以及“关闭” X按钮,单 击“关闭”按钮将退出开发环境。标题栏上还显示出当前被操作的文档的文件名。1.启动Windows 2000操作系统打开计算机,启动Windows 2000操作系统。2.创建工作文件夹创建Visual C+ 6.0的工作文件夹”Visual C+程序、齢”(表示自己的文件夹),在文

4、件夹“实验”下再创建一个文件夹“实验”,下一次实验就在“实验”文件夹下创建子文件夹实验,依此类推。以后实验所创建的工程都在相应的文件夹下,这样既便于 管理,又容易查找。可看到有关各种操作的提示。如果取消选中4.认识开发环境界面单击“结束”按钮关闭此对话框,进入Visual C+ 6.0开发环境。开发环境界面由标 题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口和状态栏等组成,如图0.23.启动 Visual C+6.0选择“开始一程序 -Microsoft VisualDid you know.Studio 6.0Microsoft Visual C+ 6.0,运行Visual C+

5、6.0o第一次运行时,将显示当时 的提示”对话框。单击“下个提示”按钮,“再启动时显示提示”复选框,那么下一次运 行Visual C+6.0,将不再出现此对话框,如图 0.1所示。 lat of (cs)./: Cj 痴 Re习 FM. TJCt*_SampleVlew 三31 cl member|二. OnDraw亠回2SJid CEi_SaopleView: :0nDraw(CDC* pDC) CEx_SapleDoc* pDoc = GetDocuaentO, ASSBRTtVALID(pDoc)/ TODO: add draw code far native data here/ZJh

6、ll_ 2J AsseflValidjtl “ CEx SampI XEx_Smp Dump|CDui GelDocwne% OnBeginPri *OnDrawCD OnEndPrint OnPrepafef PreCreateA CMalnframeS. ,j Glbal TN,靖工I n .TTTOj: lojify the Window class or styles hrre by iaodifyinc / the CRBATE项目工作区 窗口fx SMplr.exr - rror(t), Mrninf(f)输出窗口Ln 56. Col 1输出窗口标签图0.2 Visual C+ 6

7、.0中文版开发环境所示。标题栏工具栏:重天中夏兀” 1I一S”菜单栏包含了开发环境中几乎所有的命令,它为用户提供了文档操作、程序的编译、 调试、窗口操作等系列的功能。菜单中的些常用命令还被排列在相应的工具栏上,以 便用户更好地操作。项目工作区窗口包含用户项目的一些信息,包括:类(ClassView页面)、项目文件 (FileView页面)和资源(ResourceView页面)等。在项目匚作区窗口中的任何标题或图标 处单击鼠标右键,都会弹出相应的快捷菜单,包含当前状态下的些常用操作。文档窗般位于开发环境中的右边,各种程序代码的源文件、资源文件、文档文件 等都可以通过文档窗口显示出来。输出窗口般出

8、现在开发环境窗口的底部,包括编译(Build)、调试(Debug)、献 文件(Findin Files)等相关信息的输出。这些输出信息以多页面标签的形式出现在输出窗 口中,例如“编译”页面标签显示的是程序在编译和连接时的进度及错误信息。状态栏一般位于开发环境的最底部,它用来显示当前操作状态、注释、文本光标所在 的行列号等信息。5 .显和隐藏工具栏显示或隐藏工具栏可以使用“定制”对话框或快捷菜单两种方式进行操作。(1) “定制”对话框方式操作步骤如下:选择“工具”菜单“定制”菜单项,弹出“定制”对话框,如图0.3所示。图0.3 “定制”对话框图0.4工具栏的快捷菜单单击“工具栏”标签项,将显示出

9、所有的工具栏名称,凡显示在开发环境上的 具栏名称前面均带有选中标记。单击“编译”工具栏名称,复选框中带有选中标记,该工具栏将显示开发环境中。 再单击“编译”工具栏名称,复选框的选中标记将去除,该工具栏从开发环境中消失。其 他工具栏的显示和隐藏均可类似操作。(2)快捷菜单方式如果嫌上述操作不够便捷,那么可以在开发环境中工具栏或菜单栏处右击鼠标,将会 弹出个包含工具栏名称的快捷菜单,如图0.4所示,凡显示在开发环境上的工具栏,其 相应的菜单项前面就会有选中标记。对相应的工具栏进行选择将使其显示或隐藏。6 .工具栏的浮动与停泊Visual C+6.0的工具栏具有“浮动”与“停泊功能。Visual C

10、+ 6.0启动后,系统 默认将常用工具栏“停泊”在主窗口的顶部。若将鼠标指针指向工具栏的非按钮区域,可 以将工具栏拖放到主窗口的四周或中央。如果拖放到窗口的中央处,则工具栏成为“浮动” 的工具窗口。窗口的标题就是工具栏的类型名称。拖放工具栏窗口的边或角可以改变其 形状。图0.5浮动的标准”工具栏例如,将鼠标指针指向“标准”工具栏的非按钮区域,按住鼠标左键不放,将其拖至 屏幕中央,释放鼠标左键,观察变化。再将鼠标指针移至工具栏窗口的边界处,按住鼠标 左键不放并拖动,观察大小的变化。图0.5是“标准”工具栏浮动的状态,其大小已被拖 放过。当然,浮动和停泊两种状态可以进行切换。在“浮动”的工具窗口标

11、题栏处双击鼠标 左键或将其拖放到主窗口的四周,都能使其停泊在相应的位置处。在“停泊”工具栏的非 按钮区域双击鼠标左键,可切换成“浮动”的工具窗口。7 .创建和编连控制台应用项目在Visual C+ 6.0中,用应用程序向导创建和编连个控制台应用程序,可按下列步骤进行:选择“文件” 一 “新建”菜单命令,显示出“新建”对话框,如图0.6所示。IOmIm Ratawu Yy* 2.jijy工農CM; c,qe荘,9irtrtir VM/aNa 8 tat価工作区r Aecn*ifar n / ,A(* Twin” CmmI( r一%IMA J? OywUc Uat l*wyefdr:图0.6新建一

12、个工程 选择工程标签,并从列表框中选中Win32 Console Application项。在“工程”编辑框中键入控制台应用程序项目名称Ex_Hello,并将项目文件夹定 位到“ D:Visual C+程序、实验、实验”。单击“确定”按钮,显示Win32应用程序向导对话框。第一步是询问项目类型, 如图0.7所示。图0.7控制台应用程序的第1步图0.8修改代码选中A “Hello, World!” application项。单击“完成”按钮,系统将显示向导创建的 信息,单击“确定”按钮将自动创建此应用程序。默认时,项目工作区窗口显示的是Class View页面,将所有内容展开,双击main 项,

13、在文档窗口中将mai n函数体中的Hello World !n 改为I Li ke Vi sual C+ 6.0中文版!n, 结果如图0.8所示。Mindnt vac. wvLite VlauU C2说明:在输入字符和汉字时,要切换到相应的输入方法中,除了字符串和注称可以使 用汉字外,其余一律采用英文字符输入。代码中,stdafx.h是每个应用程序所必有的预编译 头文件,程序所用到的Visual C+头文件包含均添加到这个文件中。单击编译工具条图的!e|上的生成工具按钮讎或直接按快捷键F7,系统 开始对Ex-Hello进行编译、连接,同时在输出窗口中观察出现的内容,当出现:Ex_Hello.e

14、xe - 0 error(s), 0 warning(s) 表示Ex_Hello.exe可执行文件已经正确无误地生成了。单击编译工具条四只9 I上的运行工具按钮!或宜接按快捷键Ctrl+F5,就可以运行刚刚生成的Ex_Hello.exe 了,结果如图0.9 所示。8 .输入并编译个新的C+程序选择“文件” 一 “关闭工作区”菜单,关闭原 来的项目。 按上面的方法创建一个 Win32 Console Application项目Ex_Simple,在向导的第一步中选择An empty project 类型。图0.10 “新建”对话框的“文件”页面 再次选择“文件” 一 “新建”菜单命令,显示出“新

15、建”对话框“文件”页面, 如图0.10所示。在文件类型列表中选择C+Source File,然后在文件框中输入要创建的文件名 Ex_Simple文件扩展名可以不必输入,系统会自动添加cpp扩展名(cpp是C Plus Plus的 缩写,即C+的意思)。单击“确定”按钮,在打开的文档窗口中输入下列C+代码:/程序Ex_Simple, 一个简单的C+程序*/ C+程序的基本结构#include void main()(double r, area;/声明变量coutvv”输入圆的半径:;/显示提示信息cinr;/从键盘上输入变量r的值area = 3.14159 * r * r;/计算面积cout

16、cv圆的面积为:vvarearT; )/输出面积此时在文档窗口中所有代码的颜色都发生改变,这是Visual C+6.0的文本编辑器所具有的语法颜色功能如图0.11所示。其中,绿色表示注释,蓝色表示关键词等。/*程序Ex_Si“le. 个径单的C+I?序/示南版 斐源盘面面 明示tt世 m:縦59入 信先/ C桎序的基本培梅include void min()double r, area.cout ”输入酬学往:.cinr.area = 3.14159 r r,)cout”BB的加R area“n 二图0.11编辑器的代码语法颜色功能按快捷键F7,系统开始编译。编译后,再按快捷键Ctrl+F5就

17、可运行了。说明:对于C/C+语言工程项目的创建,凡没有特别说明,均采用此方法。9 .退出 Visual C+6.0退出Visual C+ 6.0有两种方式:种是单击主窗口右上角的“关闭”按钮X,另 种是选择File-Exit菜单。10 .写出实验报告结合思考与练习题,写出实验报告。思考与练习(1)除工具栏可以浮动和停泊外,看看还有哪些窗口可以这样操作?(2)经过创建项目文件的实验,试总结出创建一个控制台应用项目的一般方法。实验1 Windows编程基础实验目的和要求创建一个Win32应用程序Ex_SDK,在程序中构造个编辑框控件和一个按钮。编辑 框用于输入一元二次方程的系数,各系数之间用逗号分

18、隔,当单击“计算”按钮,获取方 程系数,然后将求得的根通过TextOut显示在窗口客户区中。实验准备和说明(1)具备知识:简单的SDK编程基础。(2)准备本次上机所需要的程序。(3)创建本次实验工作文件夹“VisualC+程序、实验、实验实验内容和步骤11 启动 Visual C+6.0打开计算机,启动Visual C+6.0系统。12 创建工程并添加代码选择“文件” 一 “新建”菜单命令,打开应用程序向导,显示出“新建”对话框。 单击“工程”标签,从列表框中选中Win32 Application (Win32应用程序)项。在工程名 称框中输入Win32应用程序项目名称Ex.SDK。单击浏览按

19、钮.将工程定位到文件夹 K.Visual C+ 6.0 程序实验实验 1 ”。单击“确定”按钮继续。在向导第一步对话框中,选中An empty project (个空 的工程)项。单击“完成”按钮,系统将显示AppWizard (应用程序向导)的创建信息, 单击“确定”按钮,系统将自动创建此应用程序。再次选择“文件” 一 “新建”菜单命令,显示出“新建”对话框。单击“文件” 标签,在左边的列表框中选择C+ Source File项,在右边的“文件”下的编辑框中输入 Ex一SDKcpp,单击“确定”按钮。在打开的文档窗口中输入下面的代码:#includc #include #include /Z

20、求一元二次方程的根,函数返回根的个数int GetRoot(float a, float b, float c, double *root)double delta, deltasqrt;delta = b*b - 4.0 * a * c;if (delta0.0) return 0; /Z 无根dellasqrt = sqrt(delta);if(a!=O.O) root0 = (b + deltasqrt)/(2.0 * a);rool 1 = (-b - deltasqrt)/(2.0 * a); elseif (b!=0.0) root0 = rootl = c/b;else retu

21、rn 0;if (root0 = root 1 ) return 1;else return 2;char str80;LRESULT CALLBACK WndProc (HWND, UINT WPARAM, LPARAM); 窗 过呈 int WINAP1 WinMain (HINSTANCE hlnstance, HINSTANCE hPrevInstance,LPSTR IpCmdLine, int nCmdShow)HWND MSG WNDCLASS wndclass.stylehwnd ;/Z窗口句柄msg;消息wndclass ; 窗 类wndclass.lpfn WndProc

22、wndclass.cbClsExtra wndclass.cbWndExtra wndclass.hlnstance wndclass.hlcon wndclass.hCursor wndclass.hbrBackground wndclass.lpszMenuName wndclass. IpszClassName=CS.HREDRAW I CS_VREDRAW ;=WndProc ;=0;=0;=h In stance ;=Loadicon (NULL, IDI_APPLICATION);=LoadCursor (NULL, IDC_ARROW);=(HBRUSH) GetStockObj

23、ect (WHITE.BRUSH);= NULL;二 SDKWin”;if (!RegisterClass (&wndclass)/窗口类名 /Z注册窗口return 0;MessageBox (NULL,”窗 口注册失败! , HelloWin, 0);/Z创建窗口hwnd = CreateWindow (SDKWin,实验1Windows编程基础”, WS_OVERLAPPEDWINDOW. CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, h Instance, NULL);/Z窗口类名 /Z窗口

24、标题 /Z窗口样式/窗口最初的x位置 /窗口最初的y位置窗最初的x大小ShowWindow (hwnd, nCmdShow);/窗口最初的y大小/Z父窗口句柄/Z窗口菜单句柄/Z应用程序实例句柄/Z创建窗口的参数/Z显示窗口/更新窗口,包括窗口的客户区UpdateWindow (hwnd);while (GetMessage (&msg, NULL, 0,0) TranslateMessage (&msg);DispatchMessage (&msg);/Z转换某些键盘消息/Z将消息发送给窗口过程,这里是WndProcreturn msg.wParam :LRESULT CALLBACK Wn

25、dProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM IParam)HDChdc;PAINTSTRUCT ps;static HWNDcharfloatdoubleintswitch (message)hwndButton, hwndEdit;strEdit80, strA网80, strHint80;a|3|;root2;i, j, k, m;case WM CREATE:窗创建产生的消息hwndEdit = CreateWindow(“edit,NULL, WS_CHILDIWS_VISIBLEIWS_ BORDER, 10, 60,

26、200, 25, hwnd, NULL, NULL, NULL);hwndButton = CreateWindow(button,计 算,WS_CHILDIWS_VISIBLEIBS_PUSHBUTTON, 240, 60, 8, 25, hwnd, NULL, NULL, NULL);return 0;case WM_COMMAND:/命令消息,控件产生的通知代码在wParam的高字中if(HWND)lParam = hwndButton )&( HIWORD(wParam) = BN_CLICKED )( /Z获取编辑框控件的内容,并将其转换成float数值GetWindow7ext(

27、hwndEdit, strEdit, 80);分隔字符串k = 0;m = 0;for(j=0;j80;j-H-)if(strEdit|jl=V)k+; m = 0;/Z获取编辑框内容else strAkm = strEditQ;m+;for (i=0; i3; i+)ai = (float)atof(strAi); /Z 将字符串转换成float数值 int n = GetRoot(a0, al, a2, root);if (n Right对齐,其余默认编辑框(课时数)IDC_EDIT_COURSEHOURS默认编辑框(学分)IDC_EDIT_CREDIT默认右击添加的课程类型的组合框控件,

28、从弹岀的快捷菜单中选择“属性”命令,将 其属性对话框切换到Data页面,直接输入内容,输入一-行后按Ctrl+Return键添加另一行。 结果如图2.3所示。曾 Genetai Data | Style* | Extended Styles |图2.3课程类型组合框内容输入按Ctrl+W快捷键或双击对话框资源模板的空白处,为!DD.COURSE创建一个对 话框 CCourseDlgo 打开 ClassWizard 的 Member Variables 页面,看 Class name 是否是 CCourseDlg,选中所需的控件ID号,双击鼠标。依次为表2.2控件增加成员变量表2.2控件变量控件

29、ID号变量类别变量类型变量名范围和大小IDC_EDIT_COURSENOValueCStringm_strNOIDC_EDIT_COURSENAMEValueCStringm_strNameIDC_COMBO_SPECIALValueCStringm_strSpecialIDC_COMBO_SPECIALControlCComboBoxm_combo SpecialIDC_COMBO_TYPEValueCStringm_strlypeIDC_EDIT_OPENValueBYTEm_nOpenIDC.SPINlControlCSpinButtonCtrlm_spinOpenIDC_EDIT_CO

30、URSEHOURSValueintm_n HoursIDC_EDIT_CREDITValuefloatm_fCredit18 添加CCourseDIg类代码 用MFC Class Wizard为CCourseDIg类添加WM_INITD1ALOG消息映射,并添加 下列初始化代码:BOOL CCourseDIg:OnInitDialog()CDialog:OnInitDialog();m_spinOpcn .SetRange( 1,8);m_n Hours = 60;m_fCredit = 2.0;m_nOpen = 1;m_strlype =专修;/Z这里对专业组合框进行初如化m_8mboSp

31、ecial.AddString(机械工程及其自动化”);m_8mboSpecial.AddString(电气工程及其自动化);m_strSpecial =机械工程及其自动化;UpdateData(FALSE);return TRUE; / return TRUE unless you set the focus to a control用MFC ClassWizard为按钮IDOK添加BN.CLICKED的消息映射,并增加下列 代码:void CCourseDIg: :OnOK()UpdateData();m_strNO.TrimLeft();if (m_strNO.IsEmpty() Mes

32、sageBox(课程号不能为空! );return;m_strName.TrimLeft();if (m_strName.IsEmpty() MessageBox(课程名称不能为空!);return;CDialog:OnOK();19 添加CEx-CtrlsDlg程序代码 按Ctrl+W快捷键,打开MFC ClassWizard对话框,为列表框控件IDC-LIST1添加 控件变量m_List.类型为CListBox, 用 MFC ClassWizard 为按钮 IDC一BUTTON一COURSE 添加 BN.CLICKED 消息映 射,并添加下列代码:void CEx_CtrlsDlg:OnB

33、uttonCourse()CCourseDlg dig;if(IDOK != dlg.DoModalO) return;清除列表框原来的显示内容while(m_List.GetCountO !=0) m_List.De leteString(O);m_List.AddString(课程号:+dlg.m_strNO);m_List.AddString(课程名称:n+dlg.m_strName);m_List.AddSiring(所属专业:+dlg.m_strSpecial);m_List.AddString(课程类型:+dlg.m_strlype);CString str;str.Format(

34、开课学期:%d, dlg.m_nOpen );m_List.AddString( str);str.Format(课时数:%d, dlg.m_nHours );m_List.AddString( str);str.Format(学分:%4.1f dlg.m_fCredit);m_List.AddString( str); 在Ex_CtrlsDlg.cpp文件的前面添加ClnputDlg的头文件包含:#include Ex_CtrlsDlg.h#include CourseDlg.h编译运行并测试。20 写出实验报告分析上述运行结果以及思考与练习,写出实验报告。思考与练习(1)为CCourseD

35、lg类添加一个公有型CString成员变量m_strOKText,当通过 CCourseDlg类对象将m_strOKText设为“修改”,CCourseDlg对话框中的“添加”按钮标 题变成“修改”,试编程实现。(2)由于每学期的门课程学分一般不超过6个学分,因此若将学分编辑框改为组合框,应如何修改和编程?实验3常用控件(2)实验目的和要求(1)设计个如图3.!所示的“学生基本信息”对话框。(2)在实验2的基础上,实现功能:在图2.1中的“课程信息”按钮下方添加一个“学 生基本信息”按钮,单击该按钮,弹出“学生基本信息”对话框,单击“添加”按钮,学 生基本信息显示在列表框中。(3)在CEx.C

36、trlsDlg对话框中添加一个滚动条和两个滑动条来调整对话框的背景颜色的3个分量:R (红色分量)、G (绿色分量)和B (蓝色分量),结果如图3.2所示。出生年月:|图3.1”学生基本信息”对话框实验准备和说明(1)具备知识:滚动条、进展条、滑动条、时间和日历控件。(2)创建本次实验工作文件夹“.VisualC+程序、实验、实验3”。实验内容和步骤21 在实验3的工作文件夹中复制Ex_Ctrls文件夹将本书实验2中的Ex_Ctrls文件夹复制到实验3的工作文件夹中。22 启动 Visual C+6.0启动 Visual C+ 6.0 系统。23 创建并添加“学生基本信息”对话框选择“文件”

37、一 “打开工作区”菜单,将“.Wisual C+程序、实验、实验3Ex_Ctrls” 文件夹中的Ex_Ctrls项目打开。添加一个新的对话框资源,将ID号改为【DDNPUT,标题为“学生成绩输入”, 将对话框字体改为“宋体,9号。将OK和Cancel按钮标题改为“确定”和“取消”。调整对话框的大小,将“确定”和“取消”按钮移至对话框的方,然后显示对 话框网格。参看图3.1,向对话框添加如表3.!所示的控件。表3.1学生基本信息对话框添加的控件添加的控件ID号标题其他属性编辑框IDC_EDIT_NAME默认编辑框IDC_EDIT_NO默认编辑框IDC_EDIT_S1默认旋转按钮控件1DC_SPI

38、N_S1Auto buddy、Right 对齐编辑框IDC_EDIT_S2默认旋转按钮控件1DC_SP1N_S2Auto buddy Set buddy integer Right 对齐编辑框1DC_ED1T_S3默认旋转按钮控件IDC_SPIN_S3Auto budOdy、Set buddy integer Right j齐双击对话框模板空白处,为该对话框模板创建一个对话框类ClnputDlg。 在MFC ClassWizard的Member Variables页面中,确定Class name中是否已选择了 ClnputDlg,选中所需的控件ID号,双击鼠标或单击Add Variables按

39、钮。依次为表3.2控 件增加成员变量。表3.2控件变量控件ID号变量类别变量类型变量名范围和大小1DC_EDIT_NAMEValueCStringm_strName20IDC_EDIT_NOValueCStringm_strNO201DC_EDIT_S1Valuefloatm_fScore 10.0 100.01DC_SPIN_S1ControlCSpinButtonCtrlm_spinScore 11DC_EDIT_S2Valuefloatm_fScore20.0 100.01DC_SP1N_S2ControlCSpinButtonCtrlm_spinScore2IDC_EDIT_S3Val

40、uefloatm_fScore30.0 100.0IDC_SP1N_S3ControlCSpinButtonCtrlm_spinScore3 在 MFC ClassWizard 的 Messsage M 叩s 页面中,为 ClnputDlg 添加 WMJNITDIALOG消息映射,并添加下列代码:BOOL CInputDlg:OnIn itDialogOCDialog:OnInitDialog();m_spinScorel.SetRange( 0, 100 ); /Z 设置旋转按钮控件范围m_spinScore2.SetRange( 0, 100);m_spinScore3.SetRange(

41、 0, 100);return TRUE; / return TRUE unless you set the focus to a control 用 MFC ClassWizard 为 ClnputDlg 增加 IDC一SPIN一SI 控件的 UDN_DELTAPOS 消 息映射,并添加下列代码:void CInputDlg:OnDeltaposSpinSl(NMHDR* pNMHDR, LRESULT* pResult)NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;UpdateData(TRUE);/将控件的内容保存到变量中m_fScore 1 +=

42、(float)pNMUpDown-iDelta * 0.5f; if (m_fScorel 100.0) m_fScorel = lOO.Of; UpdateData(FALSE)!将变量的内容显示在控件中pResult = 0; ) 打开1DD_EX_CTRLS-DIALOG对话框资源,在“课程信息”按钮下方添加一个 “学生基本信息”按钮,并将ID号设为IDC一BUTTON-STUINFO。 用 MFC Class Wizard 为按钮 IDC一BUTTON一STUINFO 添加 BN_CLICKED 消息映 射,并添加下列代码:void CEx_CtrlsDlg:OnButtonStuin

43、fo()CStuInfoDlgdlg;if (IDOK != dlg.DoModalO) return;while(m_List.GetCount()!=0)m_List.DeleteString(O);CString strSex(女);if (dlg.m_bMale) strSex =男;m_List.AddString(姓名:+dlg.m_strName);m_List.AddSlring(学号:+dlg.m_strNo);m_List.AddString(性别:+strSex);m_List.AddString(出生年月:+dlg.m_tBirth.Format(%Y-%m-%d);m

44、_List.AddString(所学专业:+dlg.m_strSpecial); 在Ex_CtrlsDlg.cpp文件的前面添加CStuInfoDlg类的头文件包含:#include CourseDlg.h#include StuInfbDlg.h编译运行并测试。结果如图3.3所示。2使用控件图3.3学生基本信息添加后的结果4 .改变对话框背景颜色 将项目工作区窗口切换到Resource View页面,打开IDD_EX_CTRLS-DIALOG对话框资源。打开对话框网格,参看图3.2的控件布局,为对话框添加如表3.3所示的些控件表3.3添加的控件添加的控件ID号标 题其他属性垂直滚动条 滑动条

45、(绿色) 滑动条(蓝色)1DC_SCROLLBAR_RED IDC_SL1DER_GREEN IDC_SLIDER_BLUE默认方位为Vertical其他默认 方位为Vertical,其他默认 用MFC ClassWizard为表3.4控件添加成员变量表3.4控件变量控件ID号变量类别变量类型变量名范围和大小IDC_SCROLLBAR_REDControlCScrollBarm_scrollRedIDC_SLIDER_GREENControlCSliderCtrlm_sliderjreenIDC_SLIDER_GREENValueintm_nBlueIDC_SLIDER_BLUEControl

46、CSliderCtrlm_sliderBlue1DC_SLIDER_BLUEValueintm_nBlue为CEx_CtrlsDlg类添加两个成员变量,个是int型m_nRed,用来设置颜色R、 G、B中的红色分量,另个是画刷CBrush类对象m_Brush,用来设置对话框背景所需要 的画刷。 在CEx_CtrlsDlg:OnInitDialog函数中添加下列代码:BOOLCEx_CtrlsDlg:OnInitDialog() m_scrollRcd.SetScrollRange(0, 255);m_sliderBlue.SelRange(O, 255);m_sliderGreen.SetRa

47、nge(O, 255);m_nBlue = m_nGreen = m_nRed = 192;UpdateData( FALSE);m_scrollRed.SetScrollPos(m_nRed);return TRUE; / return TRUE unless you set the fbcus to a control)用MFC ClassWizard为CEx_CtrlsDlg类映射WM_VSCROLL消息,并添加下列 代码:void CEx_CtrlsDlg:OnVScroll(UlNTnSBCoGetDlgCtrllD();/Z 获取对话框中控件ID号if(nID = IDC_SCRO

48、LLBAR_RED) /Z或是滚动条产生的水平滚动消息switch(nSBCode)case SB_L1NEUP: m_nRed; /Z单击滚动条向上箭头 break;case SB_LINEDOWN: m_nRcd+; /Z单击滚动条向下箭头 break;case SB_PAGEUP: m_nRed -= 10;break;case SB_PAGEDOWN:m_nRed += 10;break;case SB_THUMBTRACK:m_nRed = nPos; break;if (m_nRed255) m_nRed = 255;m_scrollRed.SetScrollPos(m_nRed)

49、;InvalidateO;/Z使对话框无效,强迫系统重绘对话框CDialog:OnVScroll(nSBCode, nPos, pScrollBar); 用MFC Class Wizard为CEx_CtrlsDlg类映射WM.CTLCOLOR消息,并添加下列 代码:HBRUSH CEx_CtrlsDlg:OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)/HBRUSH hbr = CDialog:OnCtlColor(pDC, pWnd, nCtlColor);Update Data(TR UE);COLOR REF color = RGB(m_n

50、Red, m_nGreen. m_nBlue);m_Brush.DetachO;/使画刷和对象分离m_Brush.CreateSolidBrush(color);/Z创建颜色画刷pDC-SetBkColor( color);/Z设置背景颜色return (HBRUSH)m_Brush;/返回画刷句柄,以便系统使此画刷绘制对话框编译运行并测试。5 .写出实验报告分析上述运行结果以及思考与练习,写出实验报告。思考与练习(1)若将控制绿色和蓝色颜色分量的滑动条全部换成滚动条,则代码应如何修改?(2)若将CEx-CtrkDlg对话框中的列表框换成静态文本,并用于显示信息,则应如何 实现?Visual

51、C+实训实验4列表控件和树控件实验目的要求(1)创建一个对话框应用程序Ex_List,其主界面如图4.1所示。(2)设计个如图4.2所示的“学生课程成绩”对话框,创建并完善该对话框类 CScoreDlgo图4.2 ”学生课程成绩”对话框(3)实现功能:单击图4.1中的“学生课程成绩”按钮,弹出学生课程成绩”对话 框,单击“添加”按钮,学生课程成绩添加到列表控件。若选中列表项,“修改”按钮由原 来的禁用变成可用,单击“修改”按钮,则弹出的“学生课程成绩”对话框中的“添加” 按钮标题变成“修改”,单击“学生课程成绩”对话框中的“修改”按钮,该列表项的内容 被修改。(4)按照教材“树控件”中的示例进行实验。实验准备和说明(1)具备知识:图像列表、列表控件和树控件。(2)创建本次实验工作文件夹“.Visual C+程序、实验、实验4”。实验内容和步骤1 .启动 Visual C+6.0打开计算机,启动Visual C+6.0系统。2 .创建对话框应用程序Ex-List,并设计其界面 选

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!