图像编程与文字处理.ppt

图像编程与文字处理.ppt

ID:51995283

大小:430.00 KB

页数:29页

时间:2020-03-27

图像编程与文字处理.ppt_第1页
图像编程与文字处理.ppt_第2页
图像编程与文字处理.ppt_第3页
图像编程与文字处理.ppt_第4页
图像编程与文字处理.ppt_第5页
资源描述:

《图像编程与文字处理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章图像编程与文字处理——精雕细琢,美化应用程序教学内容§6.1图形设备接口§6.2常用绘图函数§6.3绘图工具§6.4字体与文字处理§6.5位图§6.6综合实例——建立宾馆管理系统的启动界面§6.7小结思考与练习§6.1图形设备接口6.1.1设备环境类在Windows程序中,应用程序的输出并不直接面向物理的设备,如显示屏或打印机,而是针对一个称之为设备环境(DeviceContext)的逻辑设备进行操作,设备环境与实际设备之间的信息传送由Windows直接管理。在MFC应用程序中,所有的绘制调用均通过相应的设备环境对象实现,设备环境对象封装了相应的WindowsAPI功能,由

2、一个32位的HDC类型句柄标识。在MFC类库中,用CDC类封装设备文本对象。§6.1图形设备接口6.1.1设备环境类1、设备环境类(CDC)CDC类直接继承自CObject类,它是设备上下文对象的基类。CDC基类定义了设备描述表对象,并且提供在显示器、打印机或Windows用户区上绘图的方法,它封装了使用设备环境的GDI函数。所有的绘图操作都是直接或间接运用了CDC的成员函数,这些函数有的进行设备描述表操作,有的是用来画图的,还有的函数是用来获取或设置绘图属性,为映像和视图服务的。2、派生类CPaintDCCPaintDC是从CDC派生出来的设备描述表类,它常常在窗口的OnPai

3、nt函数中使用。查看MFC的源代码(StudioVC98MFCSRCviewcore.cpp)中的OnPaint函数的实现可以知道,OnPaint函数首先构造一个CPaintDC对象,再调用OnPrepareDC()函数将其准备好,最后以这个准备好的CPaintDC对象指针为参数,来调用OnDraw函数进行各种图形处理。§6.1图形设备接口6.1.1设备环境类3、派生类CClientDC(管理客户区)CClientDC类只能在客户区绘图。所谓客户区是指窗口区域中去掉边框、标题栏、菜单栏、工具栏、状态栏等以外的部分,它是用户可以操作的区域。例如打开Word文档将是将某个.d

4、oc文件显示在其客户区域中。在使用CClientDC进行绘图时,一般要调用GetClientRect函数来获取客户区域的大小。4、派生类CWindowDC(管理框架窗口)CWindowDC类直接从CDC派生,它使调用和释放整个窗口(包括客户区和非客户区)的设备环境过程自动化。CWindowDC对象在构造时调用WindowsAPI函数GetWindowDC,在析构时调用相应的API函数ReleaseDC,这意味着CWindowtDC对象可访问CWnd所指向的整个屏幕区域。§6.1图形设备接口6.1.2使用GDI对象在选择GDI对象进行绘图时,往往遵循着下列的步骤:(1)在堆栈中定义

5、一个GDI对象(如CPen、CBrush对象),然后用相应的函数(如CreatePen、CreateSolidBrush)创建此GDI对象。(2)将构造的GDI对象选入当前设备环境中,但不要忘记将原来的GDI对象保存起来。(3)绘图结束后,恢复当前设备环境中原来的GDI对象。(4)由于GDI对象是在堆栈中创建中,当程序结束后,框架会自动删除程序创建的GDI对象。§6.1图形设备接口6.1.3坐标映射Windows的GDI(graphicsdeviceinterface)支持两种坐标系,即逻辑坐标系和物理坐标系,分别连接应用程序和图形物理设备。物理坐标是指物理设备的坐标系,它的单位

6、是真正的长度单位,有英寸(in)和毫米(mm)两种,它的原点在屏幕的左上角,X轴向右递增,Y轴向下递增。逻辑坐标指的是在窗口下的坐标,逻辑坐标的单位是逻辑像素。在Windows系统中,总共有三种物理坐标(又叫设备坐标),分别是屏幕坐标、用户区坐标、全窗口坐标。1.客户区坐标系统:客户区坐标系统是最常见的坐标系统,以窗口客户区左上角为原点(0,0),主要用于窗口客户区绘图输出以及处理窗口的一些消息。鼠标消息WM_LBUTTONDOWN、WM_MOUSEMOVE传给框架的消息参数以及CDC一些用于绘图的成员都是使用客户区坐标。2.屏幕坐标系统:屏幕坐标系统是另一类常用的坐标系统,以屏

7、幕左上角为原点(0,0)。一些与窗口客户区不相关的函数均以屏幕坐标为单位,例如设置和取得光标位置的函数SetCursorPos()和GetCursorPos();由于光标可以在任何一个窗口之间移动,它不属于任何一个单一的窗口,因此使用屏幕坐标。弹出式菜单使用的也是屏幕坐标。另外,CreateWindow()和MoveWindow()等函数用于设置窗口相对于屏幕的位置,使用的也是屏幕坐标系统。3.窗口坐标系统:窗口坐标系统以窗口左上角为坐标原点,它包含了窗口控制菜单、标题栏等内容。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。