收藏 分销(赏)

VC++编程基础知识PPT学习课件.ppt

上传人:精**** 文档编号:10250884 上传时间:2025-04-30 格式:PPT 页数:130 大小:2.04MB
下载 相关 举报
VC++编程基础知识PPT学习课件.ppt_第1页
第1页 / 共130页
VC++编程基础知识PPT学习课件.ppt_第2页
第2页 / 共130页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,VC+,编程基础,(,补充,),一、,Windows,应用程序,二、,V,C+,编程环境介绍,三、,VC+,交互编程基础,四、,Windows,图形编程,1,Windows,应用程序的相关概念,Windows,应用程序设计方法,(,1,)使用,Windows,提供的,Windows API,函数,Windows API,是,Windows,系统和,Windows,应用程序间的标准程序接口,应用程序可以通过此接口访问系统,(,2,)使用,Microsoft,提供的,MFC,类库,MFC,类库集成了大量已经预先定义好的类,用户可以根据编程的需要调用相应的类,或根据需要自定义有关的类。,2,Windows,应用程序的相关概念,Windows,应用程序开发模式值得注意的几个方面:,Message Processing,The Windows Graphics Device Interface,Resource-Based Programming,Memory Management,Dynamic Link Libraries,The Win32 Application Programming Interface,3,Windows,应用程序的相关概念,Windows,应用程序基本结构:,开始执行,初始化应用,初始化和创建应用窗口,进入消息循环并从消息队列得到一个消息,当前消息是否“退出”,?,终止执行,程序是否定义了对此消息的处理,进行默认处理,处理消息,4,Windows,应用程序的相关概念,Windows,应用程序以消息为基础,以事件驱动之。,事件驱动程序设计,是,围绕着消息,的产生与处理而展开的。一条消息是关于发生的事件的信息。作为一个,Windows,程序员,其工作就是对正开发的应用程序所要发出或要接收的消息进行,排序和管理,。,5,Windows,应用程序的相关概念,Windows,消息的结构,MSG,:,typedef struct tagMSG,HWND hwnd;,UINT message;,WPARAM wParam;,LPARAM lParam;,DWORD time;,POINT pt;,MSG,*PMSG;,6,Windows,应用程序的相关概念,Windows,消息的处理:,MSG msg,/,定义一个,MSG,类型的变量,while(GetMessage(&msg,NULL,0,0),/,产生一个消息循环,等待消息的到来,TranslateMessage(,/,解译消息,DispatchMessage(,/,将消息传递给窗口函数,以便处理相应的消息,7,Windows,应用程序的相关概念,Windows,应用程序中的,数据类型及常量,typedef,unsigned char,BYTE,typedef,unsigned short,WORD,typedef,unsigned long,DWORD,typedef,long,LONG,typedef,char,*,PSTR,typedef,char NEAR,*,NPST,typedef,char FAR,*,LPSTR,typedef,void,VOID,#denfine,WM_QUIT,0X0012,8,Windows,应用程序的相关概念,Windows,应用程序中的,数据类型及常量,类型 说明,CS,窗口类的风格(,Class Style,),IDI,预定义的图标对象的标识符(,IDentity of Icon,),IDC,预定义的光标对象的标识符(,IDentity of Cursor,),WS,窗口的风格(,Windows Style,),CW,创建窗口(,Create Windows,),WM,窗口消息(,Windows Message,),DT,绘制文本(,Drawing Text,),一些常见常量的前缀意义,9,Windows,应用程序的相关概念,Windows,应用程序中的,数据类型及常量,在变量名的表示方法方面,,Windows,推荐使用一种称为,“,匈牙利表示法,”,的方法。每个变量名用,小写字母,或描述了变量的,数据类型,的字母作为前缀,变量的名字紧跟其后,且用,大写字母开始的单词,(一个或多个单词)表示其含义,这样每个变量都能附加上其数据类型的助记符。例如:,WORD,wOffset;,/w,表示,WORD,类型,DWORD dwValue;/dw,表示,DWORD,类型,10,Windows,应用程序的相关概念,Windows,应用程序中的,数据类型及常量,类型 说明,b BOOL,,布尔类型,by BYTE,类型,c char,类型,dw DWORD,类型,l LONG,类型,lp,远(长)指针(,long pointer,),n,短整型,p,指针,s,字符串,11,VC+,编程环境介绍,1 Visual C+,简介,是,Windows,环境下最主要的应用开发系统之一,是,C+,语言的集成开发环境,与,Win32,紧密相连,强大的调试功能为大型复杂软件的开发提供了有效的排错手段,2,可视化,指软件开发阶段的可视化,利用计算机图形技术和方法,12,VC+,编程环境介绍,3,开发环境,开发环境是程序员同,VC+,的交互界面,通过,它,,可以,创建工程文件,访问资源编辑器,使用内部调试器,访问程序源代码,13,File-New-Files,(1)VC+,的菜单栏,-,File,菜单,Visual C+6.0,可以创建的文件类型,文件类型,说明,文件类型,说明,Active Server Page,网页制作,Binary File,创建二进制文件,Bitmap File,创建位图文件,C+Source File,创建,C+,源文件,C/C+Header File,创建,C/C+,头文件,Cursor File,创建光标文件,HTML Page,创建,HTML,文件,Icon File,创建图标文件,Resource Script,创建资源脚本文件,Text File,文本文,件,Resource Template,创建资源模板文件,SQL Script File,创建,SQL,脚本文件,14,File-New-Projects,15,断点作用:,中断程序的执行过程,以便检查程序代码、变量和寄存器值,位置断点,数据断点,消息断点,用来,设置,删除,和,查看,断点,(,a,),Breakpoints,选项,(2)VC+,的菜单栏,-,Edit菜单,16,(b)List Members,选项,利用此选项,,可减轻输入代码的工作量。如在变量名之后键入“,.”,或“,-”,,系统就会自动显示所有有效的成员名供选择,(c)Type Info,选项,如果在源代码中将鼠标指针停在某一变量或函数上,那么系统将显示所指变量或函数等的语法,提供有效,的成员名,17,(d)Parameter Info,选项,当输入代码时,若在输入函数名之后键入左括号,系统将显示该函数的完整原型,并用黑体显示其第一个参数。输入第一个参数之后,接着就会出现第二个参数,依此类推,(e)Complete Word,选项,系统自动完成当前语句其余部分的输入。如果不能自动完成,则给出适当的提示辅助用户完成,18,在,View,菜单中可以:,改变窗口,改变工具栏的显示方式,检查源代码,激活调试等,View-ClassWizard,选项,(a)ClassWizard,选项,(,3,),VC+,的菜单栏,-,View菜单,19,(a-1)ClassWizard,中的,Message Maps,选项卡,为,窗口,、,对话框,、,控件,、,菜单选项,和,加速键,等对象,映射消息,创建或删除消息处理函数,查看编辑消息处理函数的代码,20,(a-2)Member Variables,选项卡:,定义成员变量用于自动初始化,其中:,Control IDs,是映射到成员变量的控件,ID,值,Type,是成员变量的类型,Member,是成员变量名,21,(b)Resource Symbols,选项,该选项将打开资源符号浏览器,从中可以浏览,资源编辑符号,资源编辑符号,是映射到整数值上的一串字符,相当于资源的一个代号,在同一个程序中,资源编辑符号,不能重复,22,(c)Resource Includes,选项,该对话框包含资源符号头文件名和预处理指令。,23,(d)Workspace,选项,如果工作区没有显示或者不是处于当前状态,则选择该项将显示工作区窗口。,(e)Output,选项,在,输出窗口,中显示程序建立过程,(,如编译、链接等,),的有关信息或错误信息,并且显示调试运行时的输出结果。,24,(a)New Class,选项,该选项用来创建新类并添加到项目中,(4)VC+,的菜单栏,-,Insert菜单,25,(b)New Form,选项,该选项用来创建新的表单并添加到项目中,(c)Resource,选项,该选项将打开,Insert Resource,对话框,用以创建新的资源或插入资源文件中,(d)Resource Copy,选项,要选中该选项必须先选中某个资源,否则呈灰色。该选项用于复制选定的资源,26,使用,Project,可以,创建,、,修改,和,存储,正在编辑的,工程文件,工程文件,组合了一个应用程序的所有源文件的组成部分。工程文件包含在扩展名为,.MAK,的文件中。,(5)VC+,的菜单栏,-,Project,菜单,27,(b)Add To Project,选项,选择该选项将打开一个,级联子菜单,,,通过级连子菜单,,可以把文件、文件夹、数据链接以及,VC,组件或控件添加到当前工程文件中,(a)Set Active Project,选项,设定指定的项目为工作区的活动项目,28,(c)Settings,选项,选择该选项将弹出,Project Settings,对话框,其中,General,选项卡,用来设置基础类用法和目录,指出应用程序与,MFC,的链接方式,指出所建立的应用程序的,缺省位置为,Debug,目录,输出文件的位置,29,Build,菜单用于编译、建立和执行应用程序,(b)Build,选项,对最后修改过的源文件进行编译和链接,(a)Compile,选项,只编译当前文件而不调用链接器或其它工具。输出窗口将显示编译过程检查出的错误或警告信息,在错误信息处单击鼠标右键,可以得到错误代码的位置,(c),Rebuild All,选项,该选项允许用户编译所有的源文件,而不管它们何时曾经被修改过,(6)V C+,的菜单栏,-,Build,菜单,30,(d)Batch Build,选项,该选项能单步重新建立多个工程文件,并允许用户指定要建立的项目类型,Win32 Release,(发行版)、,Win32 Debug,(调试版)。,VC,提供了两种,应用程序类型,31,(e),Start Debug,选项,从当前语句开始执,行程序直到遇到断,点或遇到程序结束,单步执行程序,,并在遇到函数调,用时进入函数内,部再从头单步执行,使程序在运行到当前光,标所在位置时停止,(,相当,于设置一个临时断点,),调试过程中直,接进入到正在,运行的进程中,32,(a)Source Browse,选项,编译器在建立项目时会创建与项目中每一程序文件信息有关的,.SBR,文件。,BSCMAKE,程序,将这些,.SBR,文件汇编为单个浏览信息数据库,选择,Source Browse,将,弹出浏览窗口,它显,示与程序中所有符号,(,类、函数、数据、宏,和类型,),有关的信息,Tools,菜单允许用户快速地访问多个不同的开发工具,(7)VC+,的菜单栏,-,Tools,菜单,33,在工作区中添加项目:,用,File-,Open,选项可打开已存在的项目;通过,New,对话框的,Projects,选项卡创建新的项目,并选择,Add to current workspace,复选框。,VC,以项目工作区,的形式来组织文件、,项目和项目配置,1.,创建新的项目工作区,创建新的空工作区步骤:,(a)File-New-Workspaces-,输入,工作区名字,并指定,工作区目录,34,2.,项目工作区窗口简介,VC,项目工作区由,ClassView,、,ResourceView,及,FileView,三个,面板组成,35,在,VC,中,源代码或资源编辑器为了引用资源和用户自定义的其它对象,于是就引入了一种与资源一一对应的符号即,资源符号,,使之能够以字符串的方式被引用。,资源符号,是映射到整数值上的一串字符,是一种标识符。每当创建一个新的资源或资源对象时,系统就会为其提供一个缺省的资源符号名称并赋一个整数值,该定义保存在,resource.h,文件中。,资源,图标,光标,菜单,位图,对话框,资源是一种界面元素,,用户可以从中获得信息,并在其中执行某个动作,资源及资源编辑器,36,资源符号的取值范围一般为,0,32767,(2),资源符号定义的常用前缀,37,VC Programmers Guide,:,VC,程序员指南。,VC Users Guide,:,VC,用户指南。,VC Tutorials,:,VC,教程。,MFC and Templates,:微软基础类库和模板参考信息。,Languages and Libraries for C+,:,C+,语言和库文件信息,。,VC,帮助系统,主要提供,五,个,方面内容,联机帮助,38,VC+,交互编程基础,MFC,是用来编写,Windows,应用程序的,C+,类集,该类集以层次结构组织起来,其中封装了大部分,Windows API,函数和,Windows,控件,它所包含的功能涉及到整个,Windows,操作系统。,MFC,不仅为用户提供了,Windows,图形环境下应用程序的框架,而且还提供了创建应用程序的组件。,39,MFC,库中的类按层次关系划分类:,(,1,)根类:,CObject,(,2,)应用程序体系结构类,(,3,)窗口、对话框和控件类,(,4,)绘图和打印类,(,5,)简单数据类型类,(,6,)数组、列表和映射类,(,7,)文件和数据库类,(,8,),Internet,和网络工作类,(,9,),OLE,类,(,10,)调试和异常类,VC+,交互编程基础,40,应用程序体系结构类,1,命令相关类:,CCmdTarget,类,该类是,CObject,的子类,它是,MFC,库中所有具有消息映射属性的基类。消息映射规定了当一对象接收到消息命令时,应调用哪一个函数对该消息进行处理,2,线程基类:,CWinThread,类,所有线程的基类,可直接使用。,CWinApp,类就是从,CWinThread,类中派生出来的,41,4,文档,/,视类,文档对象由文档模板对象创建,管理应用程序的数据。视对象表示一个窗口的客户区,显示文档数据并允许用户与之交互,3,窗口应用程序类:,CWinApp,类,每个应用程序有且只有一个应用程序对象,在运行程序中该对象与其它对象相互协调,该对象从,CWinApp,类中派生出来。,CWinApp,类封装了初始化、运行、终止应用程序的代码。,应用程序体系结构类,42,可视对象类,2,视类:,CView,类,该类表示框架窗口的客户区和显示文档数据并接收输入的客户区,其派生类主要有如下几种:,CScrollView,:具有滚动功能的视的基类,CFormView,:其布局在对话资源中定义的滚动视,CEditView,:具有文本编辑、查找、替换和滚动功能的视,1,窗口类:,CWnd,类,CWnd,提供了,MFC,中所有窗口类的基本功能,是,CCmdTarget,类的子类,创建,Windows,窗口要分两步进行,引入构造函数,构造一个,CWnd,对象,调用,Create,建立,Windows,窗口,并将它连到,CWnd,对象上,43,3,菜单类:,CMenu,类,该类是,CObject,类的子类,用于管理菜单。它是一个,Windows HMenu,的封装,提供了与窗口有关的菜单资源建立、修改、跟踪及删除的成员函数。,4,对话框类:,CDialog,类,由于对话框是一个特殊的窗口,所以该类是从,CWnd,类中派生出来的。对话框子层次结构包括通用对话框类,CDialog,以及支持文件选择、颜色选择、字体选择、打印、替换文本的公共对话框子类。,可视对象类,44,5,控件类,控件子层次结构包括若干类,使用这些类可建立静态文本、命令按钮、位图按钮、列表框、组合框、滚动条、编辑框等。这些直观控件为,Windows,应用程序提供了各种输入和显示界面。,6,控件条类:,CControlBar,类,控件条子层次结构为工具条、状态条、对话条和分割窗口建立模型。该类是,CToolBar,、,CStatusBar,、,CDialogBar,的基类,负责管理工具条、状态条、对话条的一些成员函数。控件条指的是连接在主窗口框架的顶部或底部的小窗口,可视对象类,45,7,绘画对象类:,CGdiObject,类,图形绘画对象子层次结构以,CGdiObject,类为根类,可用于建立绘画对象模型,如画笔、刷子、字体、位图、调色板等。,8,设备描述表类:,CDC,类,该类及其子类支持设备描述表对象,是,CObject,类的子类。,CDC,类是一个较大的类,包括许多成员函数,如映射函数、绘画工具函数、区域函数等,通过,CDC,对象的成员函数可以完成所有的绘画工作,可视对象类,46,VC+,交互编程基础,MFC,中全局函数和全局变量,AfxAbort,:无条件终止一个应用程序,AfxBeginThread,:创建一个新线程并执行它,AfxEndThread,:终止当前正在执行的线程,AfxMessageBox,:显示一个,Windows,消息框,Afx,GetApp,:返回当前应用程序对象的指针,Afx,Get,InstanceHandle,:返回标识当前应用程序对象的句柄,AfxRegisterWndClass,:注册用于创建,Windows,窗口的窗口类,theApp,应用程序唯一的全局对象,47,应用程序向导,48,应用程序向导,49,应用程序向导,50,应用程序向导,51,应用程序向导,52,应用程序向导,53,应用程序向导,54,应用程序向导,55,图形设备接口,GDI,Windows,图形设备接口,(GDI,)是为与,设备无关,的图形设计的。所谓设备的无关性,就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置,。,GDI,负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上,显示图形,或,文字,。,56,GDI,的一些概念,绘图工具对象,绘图函数,文本的显示,图形设备接口,GDI,57,GDI,的一些概念,绘图工具对象,绘图函数,文本和字体,图形设备接口,GDI,58,Windows,系统,外设,直接访问,不允许,统一的设备环境(,DC),提供,使应用程序与设备相连,用户,GDI,的一些概念,设备环境,(上下文),DC,59,GDI,的一些概念,CDC,类,CDC,类提供与绘图有关的所有操作函数,如:绘图工具对象的选择;绘图属性、映射模式、视口等的设置;提供坐标转换、裁剪和绘制简单图形、显示文本的函数等。,派生自,CDC,类的还有,CPaintDC,、,CClientDC,、,CWindowDC,、,CMetaFileDC,。,60,GDI,的一些概念,CDC,类,CreateDC,、,CreateCompatibleDC,、,DeleteDC,Attach,、,Detach,GetCurrentBrush,、,GetCurrentFont,、,GetCurrentPalette,、,GetCurrentPen,、,GetWindow,SelectObject,、,SelectStockObject,SelectPalette,、,RealizePalette,GetBkColor,、,SetBkColor,、,GetBkMode,、,SetBkMode,、,GetPolyFillMode,、,SetPolyFillMode,、,GetROP2,、,SetROP2,、,GetStretchBltMode,、,SetStretchBltMode,、,GetTextColor,、,SetTextColor,GetMapMode,、,SetMapMode,、,GetViewportExt,、,SetViewportExt,、,GetWindowExt,、,SetWindowExt,PatBlt,、,BitBlt,、,StretchBlt,、,GetPixel,、,SetPixel,61,图形刷新,图形刷新,是绘图过程中必须考虑的重要问题,刷新请求,对刷新请求的响应,刷新方法,包括,(1),刷新请求,窗口大小的调整,窗口移动,被覆盖后的恢复,GDI,的一些概念,62,GDI,的一些概念,(2),系统对刷新请求的响应,当用户区的内容需要刷新时,系统向应用程序消息队列发送,WM_PAINT,消息,三种,刷新,窗口移动后的刷新,被覆盖区域的刷新,对象穿越后的刷新,(,系统自动完成,),用户区移动或显示,用户窗口大小改变,程序通过滚动条滚动窗口,窗口被另一个窗口覆盖的,恢复如下拉式菜单关闭等,光标穿过用户区,图标拖过用户区,63,窗口被另一个窗口覆盖的区域称为,无效区域,。,Windows,系统为每个窗口建立了一个,PAINTSTRUCT,结构,该结构中包含了,包围无效区域的一个最小矩形,的结构,RECT,,应用程序可以根据这个无效矩形执行刷新操作。,typedef struct tagPAINTSTRUCT,HDC hdc;,/,设备环境句柄,BOOL fErase;/,一般取真值,表示擦除无效矩形的背景,RECT rcPaint;,/,无效矩形标识,BOOL fRestore;,/,系统保留,BOOL fIncUpdate;,/,系统保留,BYTE rgbReserved32,;,/,系统保留,PAINTSTRUCT;,GDI,的一些概念,64,常用的,windows,应用程序刷新窗口的方法,保存副本。刷新时将副本拷贝到相应的窗口中。,记录事件。刷新时重新执行这个曾经发生的事件。,重新绘制。将图形绘制处理程序放在消息,WM_PAINT,响应模块中,刷新时重绘图形。,(3),有效的刷新方法,GDI,的一些概念,65,激活刷新的,MFC,窗口类的函数,GDI,的一些概念,BOOL InvalidateRect(LPCRECT,lpRect,BOOL,bErase,=TRUE);,BOOL Invalidate(BOOL,bErase,=TRUE);,void InvalidateRgn(HRGN,hRgn,BOOL,bErase,=TRUE);,66,获取设备环境,DC,的方法,获取设备环境是应用程序输出图形的先决条件,常用的两种方法是调用函数,BeginPaint,或,GetDC,1,、应用程序响应,WM_PAINT,消息进行图形刷新时,主要通过调用,BeginPaint,函数获取设备环境,hdc=BeginPaint(hwnd,&ps),;,/ps,为,PAINTSTRUCT,类型结构,由,BeginPaint,函数获取的设备环境要用,EndPaint,函数释放,BOOL EndPaint(HWND hwnd,PAINTSTRUCT&ps),GDI,的一些概念,67,2,、,如果绘图工作并非由,WM_PAINT,消息驱动,则调用,GetDC,函数获取设备环境或,CClientDC,构造一,CDC,对象,。,CWnd:GetDC,CDC*GetDC();,CDC*GetWindowDC();,CClientDC(CWnd*,pWnd,);,由,GetDC,函数获取的设备环境必须用,ReleaseDC,函数释放。,GDI,的一些概念,68,GDI,的一些概念,BeginPaint,与,GetDC,的区别,项目,函数,B,eginPaint,函数,GetDc,函数,使用环境,只用于图形刷新时获,取设备环境,使用较为广泛,操作区域,使用,BeginPaint,函数,获取设备环境后,操作,区域为无效区域,使用,GetDC,函数获,取设备环境后,操作,区域为整个用户区,释放设备环,境所用函数,由,EndPaint,函数释放,由,ReleaseDC,函数释,放,获取设备环境,DC,的方法,69,映像模式,映像模式定义了将逻辑单位转化为设备的度量单位以及设备的,x,方向和,y,方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系。,窗口,:对应逻辑坐标系上程序员设定的区域,视口,:对应实际输出设备上程序员设定的区域,GDI,的一些概念,70,GDI,的一些概念,窗口,视区变换,通常解决下面几个方面的问题:,(,1,)窗口逻辑坐标与视区设备坐标之间的转换。,(,2,)用户坐标系到屏幕坐标系,坐标轴方向可能改变,还有坐标原点的映射问题;,(,3,)用户坐标系中窗口区的图形坐标转换到视图区上的坐标需要取整。,(,4,)如果视图区水平分辨率和垂直分辨率不同,为了保持图形不变形,还要进行比例变换。,71,缺省的映射模式,将窗口中的对称图形映射到视口时仍为对称图形,按照窗口和视口的坐标比例进行映射,GDI,的一些概念,72,应用程序可获取设备环境的当前映像模式,并根据需要设置映像模式。,GDI,的一些概念,CDC:GetMapMode,CDC:SetMapMode,int GetMapMode()const;,virtual int SetMapMode(int,nMapMode,);,73,图形设备接口,GDI,GDI,的一些概念,绘图工具对象,绘图函数,文本的显示,74,CGdiObject,绘图工具对象,75,1.,画笔,(,CPen,),画笔的创建,CPen(int,nPenStyle,int,nWidth,COLORREF,crColor,);,CPen(int,nPenStyle,int,nWidth,const LOGBRUSH*,pLogBrush,int,nStyleCount,=0,const DWORD*,lpStyle,=NULL);,BOOL CreatePen(int,nPenStyle,int,nWidth,COLORREF,crColor,);,BOOL CreatePen(int,nPenStyle,int,nWidth,const LOGBRUSH*,pLogBrush,int,nStyleCount,=0,const DWORD*,lpStyle,=NULL);,画笔的操作,创建画笔,将画笔选入设备环境,删除画笔,绘图工具对象,PS_DASH,PS_DASHDOT,PS_DASHDOTDOT,PS_DOT,PS_INSIDEFRAME,PS_NULL,PS_SOLID,76,创建画笔后,必须调用,SelectObject,函数将其选入设备环境。,不再使用当前画笔时,需删除画笔,以免占内存,DeleteObject,(hP);,绘图工具对象,CPen pen(0,width,color);,CPen*oldPen=pDC-SelectObject(,绘图操作,pDC-SelectObject(oldPen);,77,2.,画刷,(,CBrush,),CBrush(COLORREF,crColor,);,CBrush(int,nIndex,COLORREF,crColor,);,CBrush(CBitmap*,pBitmap,);,BOOL CreateSolidBrush(COLORREF,crColor,);,BOOL CreateHatchBrush(int,nIndex,COLORREF,crColor,);,BOOL CreateBrushIndirect(const LOGBRUSH*,lpLogBrush,);,BOOL CreatePatternBrush(CBitmap*,pBitmap,);,BOOL CreateDIBPatternBrush(HGLOBAL,hPackedDIB,UINT,nUsage,);,BOOL CreateDIBPatternBrush(const void*,lpPackedDIB,UINT,nUsage,);,BOOL CreateSysColorBrush(int,nIndex,);,绘图工具对象,78,CBrush brush;,brush.CreateSysColorBrush(COLOR_BTNFACE);,/Select the brush into the device context.,CBrush*pOldBrush=(CBrush*)pDC-SelectObject(,/Draw.,CRect rect(50,50,150,150);,pDC-Rectangle(rect);,/Reselect the original brush.,pDC-SelectObject(pOldBrush);,绘图工具对象,2.,画刷,(,CBrush,),79,BOOL,CreatePalette(,LPLOGPALETTE,lpLogPalette,);,BOOL CreateHalftonePalette(CDC*,pDC,);,UINT GetPaletteEntries(UINT,nStartIndex,UINT,nNumEntries,LPPALETTEENTRY,lpPaletteColors,)const;,UINT SetPaletteEntries(UINT,nStartIndex,UINT,nNumEntries,LPPALETTEENTRY,lpPaletteColors,);,绘图工具对象,3.,调色板,(,CPalette,),typedef struct tagPALETTEENTRY,BYTE peRed;,BYTE peGreen;,BYTE peBlue;,BYTE peFlags;,PALETTEENTRY,;,typedef struct tagLOGPALETTE,WORD palVersion;,WORD palNumEntries;,PALETTEENTRY palPalEntry1;,LOGPALETTE,;,80,BOOL CreateRectRgn(int,x1,int,y1,int,x2,int,y2,);,BOOL CreateRectRgnIndirect(LPCRECT,lpRect,);,BOOL CreateEllipticRgn(int,x1,int,y1,int,x2,int,y2,);BOOL CreateEllipticRgnIndirect(LPCRECT,lpRect,);BOOL CreatePolygonRgn(LPPOINT,lpPoints,int,nCount,int,nMode,);,BOOL CreatePolyPolygonRgn(LPPOINT,lpPoints,LPINT,lpPolyCounts,int,nCount,int,nPolyFillMode,);BOOL CreateRoundRectRgn(int,x1,int,y1,int,x2,int,y2,int,x3,int,y3,);,int CombineRgn(CRgn*,pRgn1,CRgn*,pRgn2,int,nCombineMode,);,绘图工具对象,4.,CRgn,81,图形设备接口,GDI,GDI,的一些概念,绘图工具对象,绘图函数,文本的显示,82,CDC,的绘图函数:,CPoint GetCurrentPosition()const;,CPoint MoveTo(int,x,int,y,);,CPoint MoveTo(POINT,point,);,BOOL LineTo(int,x,int,y,);,BOOL LineTo(POINT,point,);,BOOL,Arc,(int,x1,int,y1,int,x2,int,y2,int,x3,int,y3,int,x4,int,y4,);,BOOL Arc(LPCRECT,lpRect,POINT,ptStart,POINT,ptEnd,);,绘图函数,(x1,y1),(x2,y2),(x3,y3),(x4,y4),所画曲线,83,CDC,的绘图函数:,BOOL AngleArc(int,x,int,y,int,nRadius,float,fStartAngle,float,fSweepAngle,);,BOOL LineTo(int,x,int,y,);,BOOL Polyline(LPPOINT,lpPoints,int,nCount,);,BOOL PolyPolyline(const POINT*,lpPoints,const DWORD*,lpPolyPoints,int,nCount,);,BOOL PolyBezier(const POINT*,lpPoints,int,nCount,);,BOOL DrawIcon(int,x,int,y,HICON,hIcon,);,void DrawDragRect(LPCRECT,lpRect,SIZE,size,LPCRECT,lpRectLast,SIZE,sizeLast,CBrush*,pBrush,=NULL,CBrush*,pBrushLast,=NULL);,void Draw3dRect(LPCRECT,lpRect,COLORREF,clrTopLeft,COLORREF,clrBottomRight,);,绘图函数,84,CDC,的绘图函数:,BOOL Chord(int,x1,int,y1,int,x2,int,y2,int,x3,int,y3,int,x4,int,y4,);,BOOL Chord(LPCRECT,lpRect,POINT,ptStart,POINT,ptEnd,);,BOOL,Pie,(int,x1,int,y1,int,x2,int,y2,int,x3,int,y3,int,x4,int,y4,);,BOOL Pie(LPCRECT,lpRect,POINT,ptStart,POINT,ptEnd,);,绘图函数,(x1,y1),(x2,y2),(x3,y3),(x4,y4),所填区域,85,CDC,的绘图函数:,BOOL Ellipse(int,x1,int,y1,int,x2,int,y2,);,BOOL Ellipse(LPCRECT,lpRect,);,BOOL Polygon(LPPOINT,lpPoints,int,nCount,);,int SetPolyFillMode(int,nPolyFillMode,);,BOOL PolyPolygon(LPPOINT,lpPoints,LPINT,lpPolyCounts,int,nCount,);,BOOL Rectangle(int,x1,int,y1,int,x2,int,y2,);,BOOL Rectangle(LPCRECT,lpRect,);,void DrawFocusRect(LPCRECT,lpRect,);,BOOL RoundRect(int,x1,int,y1,int,x2,int,y2,int,x3,int,y3,);,BOOL RoundRect(LPCRECT,lpRect,POINT,point,);,绘图函数,86,图形设备接口,GDI,GDI,的一些概念,绘图工具对象,绘图函数,文本和字体,87,文本和字体,使用定义好的与设备无关的字体集,,Windows,就能维护它的设备无关性,提供“所见即所得”的
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服