《面向对象程序设计》课程界面设计练习题目.doc_第1页
《面向对象程序设计》课程界面设计练习题目.doc_第2页
《面向对象程序设计》课程界面设计练习题目.doc_第3页
《面向对象程序设计》课程界面设计练习题目.doc_第4页
《面向对象程序设计》课程界面设计练习题目.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

面向对象程序设计课程界面设计练习题目Windows NT系统内建了若干个的常用控件,极大地方便了Windows下可视化程序的开发。对于初学者来说,能够熟练地使用这些控件,是学好C+面向对象编程的关键步骤。为了指引初学者或者检验学习效果,下面设计了五个练习题目,囊括了大部分的常用控件,以及程序界面开发中常常使用的技术。练习题目如下:一、播放器配置程序二、消息提示器三、流媒体管理器四、可定制背景的视图五、通讯簿一、播放器配置程序内容:制作一个基于对话框的播放器配置程序,能够从配置文件(*.ini)中读取设置信息;能够将修改后的设置信息保存在配置文件中。界面如图1所示:16141512111098675321341图1 播放器设置界面目的:掌握使用VS建立基于对话框的应用程序;熟悉标签(Static Text)、分组(Group Box)、按钮(Button)、编辑框(Edit Control)、组合框(Combo Box)、单选按钮(Radio Button)、复选框(Check Box)、热键设置控件(Hot Key)等常用控件的属性、事件;掌握配置文件(*.ini)的读写;学习MSDN文档的查阅等。要求:1、 控件1(组合框):不可输入文字,只能从下拉列表中选取一项,列表中的内容为:简体中文、繁軆中文、English;2、 控件2(复选框):默认勾选。3、 控件3(热键设置控件):当控件2勾选时,控件才3可编辑;当控件2未勾选时,控件3灰掉(不可编辑);4、 控件47(复选框):默认勾选控件4和控件5;5、 控件8(编辑框):只能输入数字,范围160;6、 控件911(一组单选按钮):默认选中控件9;7、 控件12(按钮):当点击按钮时,在13中输出如图1所示的文字;8、 控件13(编辑框):能够输入换行符,具有垂直滚动条,当文本框内容不能全部显示时,滚动条自动有效;9、 控件1416(按钮):按钮15初始不可用,当更改设置信息后才激活;接收回车提交命令;点击该按钮,将新的设置信息(控件12和13不触发配置信息改变)写回与程序同目录下,名称为config.ini配置文件中;点击按钮14时,如果设置信息有更改,将设置信息写入配置文件,并关闭对话框;若设置信息未发生改变,直接关闭对话框;点击16直接关闭对话框;10、 配置文件读写要求:程序启动时若没有找到配置文件,能够按照默认设置初始化界面(按钮15激活),点击按钮14和15生成配置文件并写入设置信息,点击16则不生成配置文件;若找到配置文件,从文件中加载配置信息并初始化程序界面;11、 对话框样式:对话框可以最小化,不能最大化,不可以改变大小;界面布局要工整;对话框初始时控件1取得焦点,按tab键焦点将按图中标注的序号逐一移动到下个控件上。提示:1、 复选框勾选状态的获取:可以将复选框与一个BOOL变量关联,通过BOOL变量得知其勾选与否;也可以获取其控件状态(state)来得到是否被勾选;可以响应复选框的单击事件来处理复选框状态改变时的任务;2、 单选按钮组的概念:点选按钮有组的概念,同一组内的单选按钮相互排斥,只能有一个被点选;一个单选按钮A若具有GROUP=true属性,则紧跟其后的GROUP=false属性的单选按钮同A为一组,可以为A关联一个int型变量,改变量反应了该组内那个按钮被点选;3、 配置文件的读写:配置文件(*.ini)为文本文件,常用于保存配置信息;系统具有GetPrivateProfileString、WritePrivateProfileString等函数用于操作配置文件,具体可参见MSDN中相关介绍;4、 使用Tab键移动焦点:需要控件具有Tabstop属性;焦点移动的顺序与界面控件的排放顺序有关,可以在界面编辑界面按Ctrl+D显示控件的序号,在序号上点击可以修改控件的顺序。二、消息提示器内容:制作一个基于对话框的消息提示器,能够添加、删除消息,轮流展现消息。主界面如图2所示;点击“消息管理”,弹出消息管理界面,如图3所示;在消息管理界面点击“+”,弹出新建消息对话框,如图4所示。1-31-51-41-21-1图2 消息提示器目的:进一步了解对话框的设置,如模态和非模态、置顶等;学会界面布局管理;掌握界面逻辑控制;掌握列表(List Box)控件的使用;掌握定时器的使用。要求:1、 控件1-1(复选框):设置属性为按钮样式;点击一次,按钮凹下,文字变为“取消置顶”,对话框置顶(主界面失去焦点,获得焦点的其他程序界面仍不能遮盖住主界面),再次点击按钮,按钮弹出,文字恢复为“置顶”,主界面取消置顶;2、 控件1-2、1-3(按钮):点击按钮1-2弹出消息管理界面(模态),主界面不可操作;点击按钮1-3,按钮1-2灰掉(不可操作),按钮1-3文字变为“停止提示”,1-5中开始显示消息;再次点击按钮1-3,按钮1-2激活,按钮1-3文字恢复为“开始提示”;点击1-4,若正在提示消息,停止提示,然后退出程序;3、 控件1-5(编辑框):用于显示提示的消息,能够显示多行文字,具有水平、垂直滚动条,只读,无边框;未进行消息提示时,内容为空;4、 控件2-1、2-2(列表):项为消息名称;列表2-1显示不进行提示的消息;列表2-2显示要进行提示的消息;2-22-12-132-122-112-32-42-92-102-82-72-642-5图3 消息管理对话框3-43-33-23-1图4 新建消息对话框5、 控件2-3(按钮):点击弹出新建消息对话框;6、 新建消息:输入名称和消息内容,点击按钮3-3,检查消息名称是否不为空,若为空给出修改提示,不为空则创建新的消息,消息列表增加一项;点击“取消”不创建新的消息;7、 控件2-4(按钮):点击按钮,若消息列表未选中一项给出提示;已选中一项,将选中项删除;8、 控件2-5(按钮):点击按钮,若消息列表未选中一项给出提示;已选中一项,将其移动到提示列表;9、 控件2-6(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将其移动到消息列表;10、 控件2-7(按钮):点击按钮,将消息列表中的项全部移到提示列表;11、 控件2-8(按钮):点击按钮,将提示列表中所有项移到消息列表;12、 控件2-9(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将选中项上移一次(已位于最顶端的项不再移动);13、 控件2-10(按钮):点击按钮,若提示列表未选中一项给出提示;已选中一项,将选中项下移一次(已位于最底端项不再移动);14、 控件2-11(编辑框):用于设定轮流提示消息的时间隔,仅可输入数字,数值范围50030000;15、 界面逻辑:当提示列表中没有要提示的消息时,1-3灰掉;当提示列表中存在消息时,1-3激活;点击1-3,启动消息提示,按设定的时间间隔,依照提示列表中消息的顺序逐一在1-5中显示提示列表中的消息;16、 对话框样式:标题栏上动态显示当前时间;主界面可用鼠标动态调整大小;当主界面大小改变时,其中按钮相对窗口边缘的位置不变,只有1-5大小发生变化。提示:1、 定时器的使用:启动定时器采用Cwnd:SetTimer函数,程序退出前应该调用CWnd:KillTimer停止之前启动的定时器;函数的具体使用方法参考MSDN文档;2、 对话框的置顶,界面控件位置、大小修改:可通过Cwnd:SetWindowsPos函数实现;函数的具体使用方法参考MSDN文档;三、流媒体管理器内容:制作一个基于单文档框架的流媒体管理器(视图类的基类为CFormView),能够添加、删除流媒体,查看流媒体属性等,主界面如图5所示,菜单结构如图6所示,添加流媒体对话框如图7所示:1-1 菜单结构如图61-31-2图5 流媒体管理器2-62-52-42-32-12-2图6 菜单结构图7 添加流媒体界面目的:熟悉单文档程序框架;学会菜单、工具栏的编辑以及消息响应;掌握表格控件(List Control)、IP地址控件(IP Address)、选项卡控件(Tab Control)的使用;了解右击快捷菜单的使用等。要求:1、 程序框架:单文档程序框架,视图类的基类为CFormView;主框架可以用鼠标调节大小;具备菜单栏1-1、工具栏1-2,不要状态栏;将默认主界面标题栏中的“ 无标题”去掉;按照图5图6修改默认菜单和工具栏,菜单“视图”和“帮助”项不变,工具栏按钮依次为“添加流媒体”、“删除流媒体”、“属性”; 2、 控件1-3(表格):具有如图5示的报表样式及表头;填充整个View区域,改变程序窗口大小,1-3也调节大小;右击1-3中一项数据弹出如图5所示的快捷菜单,内容同主菜单“流媒体”项;3、 菜单“流媒体”-“添加流媒体”:点击弹出添加流媒体对话框;4、 控件2-1(编辑框):限最大字符数16;5、 控件2-2(组合框):默认列表数据为“RTSP”、“MMS”、“HTTP”;用户也可以输入文字;RTSP MMS HTTP6、 控件2-3(IP地址控件);7、 控件2-4(编辑框):可输入多行文字;限制最大字符数128;8、 控件2-5、2-6(按钮):输入完设置信息,点击按钮2-5添加一个流媒体,同时1-3对应添加一项;若设置信息除备注外有空,将不添加流媒体,给出提示;点击按钮2-6放弃添加新的流媒体;9、 界面逻辑:若没有1-3中未选中一项,菜单“流媒体”中“删除流媒体”、“属性”不可用,工具栏对应按钮不可用;10、 界面逻辑:若1-3中选中一项,点击菜单“流媒体”-“删除流媒体”,弹出删除确认对话框,确认后删除选中的流媒体,点击工具栏“删除流媒体”按钮具有同样响应;11、 界面逻辑:若1-3中选中一项,点击菜单“流媒体”-“属性”或工具栏按钮“属性”,弹出下图8所示的“流媒体属性”对话框;对话框具有两个页面,“常规”页面显示选中流媒体的信息(均不可编辑),“网络”页面显示网络状态(为简单起见,固定为图示内容)。点击“确定”关闭属性对话框。图8 流媒体属性-常规页面图9 流媒体属性-网络页面提示:1、 去掉标题栏的“ 无标题”:可以在函数CMainFrame:PreCreateWindow中去掉框架样式FWS_ADDTOTITLE;2、 IP 地址控件内容的获取:可通过关联字符串的方式获取输入的IP地址;可通过关联DWORD整数的方式获取输入的IP地址;3、 选项卡的使用:图8和图9共使用了三个对话框;通过在TabControl控件的区域内创建嵌入式的子对话框实现图示效果,子对话框具有Border=None、Style=Child的样式,然后通过CDialog:Creat函数创建,再调用ShowWindow显示出来;在TabControl的切换事件中,根据选中的要显示页面索引,将对应的子对话框显示出来,将其它对话框隐藏起来;4、 选项卡的替代者:属性页(CPropertySheet、CPropertyPage)也能实现选项卡的效果,可以在网络上查找使用方法;四、可定制背景的视图内容:制作单文档程序,如图10所示的效果,能够根据设置的“画面属性”在视图中绘制背景:1-1图10 主界面及菜单结构2-72-82-52-62-42-22-32-1图11 画面属性设置界面目的:掌握滑块控件(Slider Control)、提示条(ToolTip Control)的使用;了解自定义控件的方法;掌握文件浏览对话框(CFileDialog)、颜色选择对话框(CColorDialog)等常用对话框的使用;了解使用GDI绘制简单图形图像的方法等。要求:1、 主界面样式:主窗口采用视图基类继承自CView的单文档程序框架;可用鼠标调节窗口大小,同时视图内容也改变大小并保持填充整个区域;标题文字顶部居中;在默认菜单中添加“设置”-“画面设置”;工具栏只有一个按钮“画面设置”;点击“画面设置”,弹出画面属性对话框;状态栏中显示鼠标相对于视图左上角的位置;2、 控件2-1(编辑框):最大字符数限制为1-16;内容默认为“画面1”;3、 控件2-2(滑块):调节范围(1-30),2-3为编辑框,只能输入数字,范围(1-30);调节Slider,编辑框同步显示当前设置值;改变编辑框中的数值,Slider同步改变滑块位置;默认值8;4、 控件2-4(自定义按钮):点击按钮弹出颜色选择对话框;选择颜色后,在按钮上显示选择的颜色;默认颜色值为RGB(0,0,255);5、 控件2-5(编辑框):只读;6、 控件2-6(按钮):点击按钮,弹出文件选择对话框,文件类型过滤类型为.bmp、.jpg、.png,选中文件后,编辑框2-5中显示文件路径;7、 控件2-7(按钮):点击按钮,完成“画面属性”设置,主窗口视图中按设置绘制出背景图像;8、 控件2-8(按钮):点击按钮,放弃“画面属性”设置的修改,视图背景不变;9、 “画面属性”界面初始化:程序启动后,初次弹出“画面属性”对话框,加载默认设置;之后弹出“画面属性”对话框加载当前设置;10、 提示条:鼠标放置到控件2-1、2-4、2-6上,会弹出对应的提示条,如图11所示。(图中为了表示各控件的提示内容,而全部显示出来);提示:1、 滑块控件的使用:同滚动条相似,滑块位置改变后会向窗体发送WM_HSCROLL(水平Slider)或WM_VSCROLL(垂直Slider)消息;对话框中响应该消息的函数具有三个参数,其中一个为CScrollBar* pScrollBar,用于指定发送消息的控件,需转换为CSliderCtrl*类型的指针获取位置;2、 自定义按钮:需要从CButton派生一个子类,姑且叫做CColorBtn,然后再CColorBtn类中响应鼠标点击事件弹出颜色对话框,选择颜色后在DrawItem函数中以选中的颜色绘制控件外观;使用自定义控件时,在对话框中放置一个按钮将其与CColorBtn类型的变量关联,就可以将放置的按钮样式展现为自定义样式;3、 提示条控件的使用:提示条在界面设计工具箱中找不到,需要完全由代码创建显示等,可通过网络查找使用方法;五、通讯簿内容:制作一个通讯录程序,程序主界面如图12所示:1-141-131-101-51-41-21-11-151-161-121-111-91-81-71-61-3图12 通讯簿主界面释放鼠标后完成节点移动2-22-32-1图13 完成拖动联系人的效果图14 添加分组界面目的:掌握树形控件(Tree Control)、时间日期控件(Date Time Picker)、分割线(Picture Control)的使用;掌握拖拽、移动、释放左键等鼠标事件的使用。要求:1、 控件1-1(树形控件):用于显示分组和联系人;节点具备图标;具有Has Button、Has Lines、Lines At Root属性;默认具有“未分组”节点;点击树中的分组,右侧“联系人信息”各内容为空;点击选中一个联系人,右侧“联系人信息”显示该人的各项信息;2、 控件1-2、1-3、1-51-9(编辑框):1-2、1-3最大字符树限制为16个;1-5、1-6分别用于显示电话1、电话2,只能输入数字,最大字符个数限制为16个;1-7、1-8最大字符个数限制为128个;1-9可输入换行符,具有水平、垂直滚动条,最大字符数限制为256个;3、 控件1-4(日期时间控件):用于显示和设置联系人的生日;为日期模式; 4、 界面逻辑:点击按钮1-10,若姓名不为空,则以“联系人信息”中的内容生成一个新的联系人并加入到“未分组”中;若姓名空给出补全提示;5、 界面逻辑:拖树中未选中联系人,按钮1-11灰掉;若树中选中一个联系人,安妮1-11激活;点击按钮1-11,若姓名不为空,则以“联系人信息”中的内容修改树中选中的联系人信息;若姓名为空给出补全提

温馨提示

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

评论

0/150

提交评论