您好,欢迎访问三七文档
可视化程序设计Windows应用程序的基本特点和概念使用向导建立应用程序资源编辑器常用控件使用图形用户界面使用面向对象的方法编程基于消息驱动的程序设计Windows应用程序的基本特点基本特点和概念对话框人机交互的接口图形用户界面(GUI:graphicaluserinterface)图形用户界面基本特点和概念对应用程序的理解:应用程序=代码+资源前台:图形化的窗口、对话框、位图等;后台:非图形化的类对象及其他代码;面向对象编程方式基本特点和概念每个应用程序都可以看作一个类,运行时产生一个实例对象,每个实例对象有一个编号,称为“句柄”(HINSTANCE类型)。操作系统必须依靠句柄识别对应的应用程序。程序的资源包括:位图、光标、对话框、图标、菜单等。每个资源对象都有一个ID,对应相应的类。面向对象编程方式基本特点和概念控制台应用程序的执行依靠程序流程控制进行windows应用程序中独立函数执行靠流程控制,整个程序中各个函数的跳转靠消息机制控制。消息机制是windows应用程序最重要的特征之一消息与消息处理函数基本特点和概念事件:在windows操作系统环境中,系统或用户产生的动作消息:描述事件发生的信息事件驱动机制:由事件发出消息,由消息触发对应的代码执行操作消息到代码的关联,由VC++消息映射机制自动完成消息与消息处理函数基本特点和概念MicrosoftFoundationClass微软基础类库主要用于开发windows应用程序是个类的层次结构,大部分由基类CObject类派生出来MFC类库基本特点和概念1、生成标准程序结构:单文档、多文档、对话框等。2、设计图形用户界面,添加控件3、建立对象的事件驱动程序,编写相关代码4、编译、链接、运行使用向导建立应用程序使用向导建立应用程序使用向导建立应用程序的步骤:设计一个可视化应用程序,可以计算圆的面积和周长。见案例calculator.使用向导建立应用程序1、用向导建立对话框使用向导建立应用程序使用向导建立应用程序使用向导建立应用程序使用向导建立应用程序2、设计图形用户界面使用向导建立应用程序3、设计对象的事件驱动程序使用向导建立应用程序3.1建立与控件对应的程序变量使用向导建立应用程序3.2编写响应消息的类函数使用向导建立应用程序(1)对话框初始化函数BOOLCCalculatorDlg::OnInitDialog(){CDialog::OnInitDialog();//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:Addextrainitializationherem_radius=0;m_girth=0.00;m_area=0.00;UpdateData(false);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}使用向导建立应用程序(2)单击“确定”按钮的响应函数使用向导建立应用程序voidCCalculatorDlg::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData(true);doublegirth,area;girth=2*3.1415*m_radius;area=3.1415*m_radius*m_radius;m_girth.Format(%10.3f,girth);m_area.Format(%10.3f,area);UpdateData(false);}(2)单击“确定”按钮的响应函数使用向导建立应用程序(2)单击“清空”按钮的响应函数voidCCalculatorDlg::OnButton2(){//TODO:Addyourcontrolnotificationhandlercodeherem_radius=0;m_girth=0.00;m_area=0.00;UpdateData(false);}(2)单击“清空”按钮的响应函数使用向导建立应用程序4、编译链接运行使用向导建立应用程序资源编辑器可视化资源的编辑环境资源编辑器1、资源编辑器的基本操作创建资源:插入菜单-资源查看和修改:双击、属性对话框资源符号:资源命名符号,与整数集对应。定义保存在头文件resource.h中。位图IDB_控件IDC_对话框IDD_菜单IDM_图标IDR_串表IDS_资源编辑器1、对话框编辑器(Dialog)功能:创建、编辑对话框,添加控件、调整布局、测试功能等打开对话框编辑器会同时出现控件工具栏和对话框调整工具栏。添加控件通过点击控件工具栏的对应按钮,在对话框中绘制。设置tab键的方法:通过“布局”菜单中的“Tab顺序”菜单激活该功能,顺次点击对应的控件来更改顺序。见案例calculator。资源编辑器2、菜单编辑器(Menu)菜单多出现在单文档或多文档程序结构中功能:创建菜单和菜单项,为菜单定义热键、快捷键和状态提示,可以定义属性和消息处理函数。见案例TestMenu。该案例演示添加一个菜单项,该菜单项执行弹出对话框的操作。操作过程:1.建立单文档2.添加菜单,给菜单命名3.添加对话框,给对话框建立类4.为菜单添加函数,函数中打开对话框静态控件voidCMainFrame::Ontm(){//TODO:AddyourcommandhandlercodehereTestDlgDlgObj;DlgObj.DoModal();}资源编辑器3、快捷键编辑器(Accelerator)可以为菜单项定义快捷键功能:添加、删除、修改、浏览项目所用快捷键查看和修改与快捷键表中每个条目有关的资源标识符为菜单项定义快捷键见案例TestMenuAlt。该案例演示为上例的菜单项添加一个快捷键。资源编辑器4、串表编辑器(StringTable)功能:显示、编辑应用程序中的所有对象ID、值和标题。5、版本信息编辑器(Version)6、图形编辑器(Icon)7、工具栏编辑器(Toolbar)功能:编辑和维护版本信息。功能:编辑、绘制位图、图表和光标。功能:创建工具栏资源。以图形方式显示需要处理的工具栏及已被选择的工具栏按钮图形。见案例TestMenuAlt。对话框中的常用控件静态控件编辑框控件按钮控件列表框控件滚动条控件所有控件都是从CWnd类派生出来静态控件1、静态控件功能:显示文本、框、矩形、图标、位图和元文件只能用来输出信息,不能接收用户信息不能产生消息包含:静态文本控件:用于显示文本,caption属性值是要显示的内容。群组框控件:用于控件分组,使界面对象功能从视觉上区分开。图片控件:用于显示图形信息。type是图片类型;image属性当图片类型是icon或bitmap时,用来指定资源的ID;color属性用来设置frame的边框颜色或rectangle的填充颜色。见案例StaticControl。操作过程:1.建立对话框2.添加群组框控件、图片控件和静态文本控件3.设置静态文本控件和群组框控件的标题4.导入位图5.设置图片控件类型为“位图类型”,与导入的位图关联静态控件编辑框控件2、编辑框控件功能:输入、编辑、修改文本内容、数据或口令编辑框的属性:Aligntext(对齐方式)Multiline(是否可多行显示)Numbers(是否限制输入数字)Horizontalscroll(添加水平滚动条)Verticalscroll(添加垂直滚动条)AutoHScroll(输入超过编辑框区域时自动向右滚动)AutoVScroll(输入回车超过编辑框区域时自动向下滚动一页)wantreturn(允许回车)Password(屏蔽输入内容)Border(控件周围加边框)Uppercase(字母转换为大写)Lowercase(字母转换为小写)Read-only(只读)2、编辑框控件编辑框控件的消息:EN_CHANGE:文本被修改,在显示文字后发送EN_UPDATE:文本被修改,在文本显示前发送EN_HSCROLL:水平滚动条被使用时,显示更新前发送EN_VSCROLL:垂直滚动条被使用是,显示更新前发送消息EN_KILLFOCUS:当控件失去键盘输入焦点时发送EN_SETFOCUS:当控件得到键盘输入焦点时发送基本操作:UpdateData(true):数据从编辑框控件向数据成员传递(对话框的公有成员函数)UpdateData(false):数据从数据成员向编辑框控件传递(对话框的公有成员函数)voidSetPasswordChar(TCHARch):设置密码的替代字符(编辑框的公有成员函数)见案例EditControl。编辑框控件操作过程:1.建立对话框2.添加编辑框控件和静态文本框控件,并设置属性3.为控件添加相应的数据成员4.为消息添加相应的函数5.添加初始化代码编辑框控件编辑框控件编辑框控件voidCEditControlDlg::OnUpdateEdit1(){//TODO:IfthisisaRICHEDITcontrol,thecontrolwillnot//sendthisnotificationunlessyouoverridetheCDialog::OnInitDialog()//functiontosendtheEM_SETEVENTMASKmessagetothecontrol//withtheENM_UPDATEflagORedintothelParammask.//TODO:Addyourcontrolnotificationhandlercodeherem_edit1=不能输入!!;UpdateData(false);}编辑框控件BOOLCEditControlDlg::OnInitDialog(){CDialog::OnInitDialog();//Settheiconforthisdialog.Theframeworkdoesthisautomatically//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE);//SetbigiconSetIcon(m_hIcon,FALSE);//Setsmallicon//TODO:Addextrainitializationherem_edit1=第一个编辑框;m_edit2.SetPasswordChar('#');UpdateData(false);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}编辑框控件编辑框控件按钮控件3、按钮控件三种:按键按钮(Button)复选框(CheckBox)单选按钮(RadioButton)见案例ButtonControl。该案例中包含三类按钮,点击按钮会在编辑框中出现相应文字。操作过程:1.建立对话框2.添加编辑框控件和按钮控件并设置相应属性3.为控件添加相应的数据成员4.为消息添加相应的函数按钮控件按钮控件设置编辑框属性为只读设置第一个复选按钮的标题为“打游戏”其他属性设置参照上页对话框布局完成按钮控件为类添加控件关联的数据成员按钮控件为消息添加消息处理函数按钮控件voidCButtonControlDlg::OnOK(){//TODO:Addextravalidationherem_edit1=您点击了确定按钮。;UpdateData(false);//CDialog::OnOK();}按钮控件voidCButtonControlDlg::OnCheck1(){/
本文标题:可视化程序设计入门
链接地址:https://www.777doc.com/doc-3205396 .html