graphics device interface

graphics device interface

ID:1708602

大小:409.00 KB

页数:21页

时间:2017-11-13

graphics device interface_第1页
graphics device interface_第2页
graphics device interface_第3页
graphics device interface_第4页
graphics device interface_第5页
资源描述:

《graphics device interface》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计II预备知识GDI(GraphicsDeviceInterface)DC(DeviceContext)本章授课内容GDI概述设备环境(DeviceContext)内存设备(MemoryDeviceContext)GDI概述GDI概述GDI是图形设备接口(GraphicsDeviceInterface或GraphicalDeviceInterface)的简称,它是微软公司的视窗操作系统(MicrosoftWindows)的三大内核部件(也称“子系统”)之一。GDI主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。利用GDI

2、所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。GDI概述GDI的结构GDI概述GDI由几百个函数和一些相关的数据类型、宏和结构组成GDI的函数大致分为以下几种取得(或者建立)和释放(或者清除)设备内容的函数取得有关设备内容信息的函数绘图函数设定和取得设备内容参数的函数使用GDI对象的函数设备环境设备环境(DeviceContext)设备环境是windows内部使用的数据结构,它定义了GD

3、I函数在显示设备特定区域的工作方式。对视频显示器来说,设备环境代表屏幕上的一块区域。要想向某个区域输出文字或者绘制图形,必须先取得代表此区域的设备环境句柄,以此句柄为参数调用的GDI函数都是对该区域的操作。caseWM_PAINT:{charszText[]=“helloworld!”;PAINTSTRUCTps;hdc=::BeginPaint(hwnd,&ps);::TextOut(hdc,10,10,szText,strlen(szText));::EndPaint(hwnd,&ps);return0;}设备环境设备环境客户区和非客户区窗口应用程序窗口包括许多元

4、素,如标题条、菜单条和窗口菜单(以前叫系统菜单)、最小化按钮、最大化按钮和恢复按钮、可变的边界、客户区、水平和垂直滚动条。应用程序的主窗口提倡包括所有这些元素。绘图操作只能在客户区中进行。除客户区以外的部分都叫非客户区。如果要在非客户区绘图,需要响应WM_NCPAINT消息。设备环境获得整个窗体的设备环境句柄:如果不是在处理WM_PAINT消息,可以使用GetDC函数取得窗口客户区的设备环境句柄,进而进行绘图操作charszText[]=“helloworld”;HDChdc=::GetWindowDC(hwnd);::TextOut(hdc,10,10,szText

5、,strlen(szText));::ReleaseDC(hwd,hdc);GetWindowDC函数能够取得整个窗口的设备环境句柄,而不仅仅是窗口的客户区,所以以这个设备句柄为参数的话,GDI函数就可以对整个窗口区域进行操作。hDC=::GetDC(hWnd);//.....//进行绘图::ReleaseDC(hWnd,hDC);demo02设备环境设备环境结构里除了包含它所代表区域的位置和大小信息外,还包含了绘制图形需要的所有其他属性信息,比如,在输出文本时使用的字体,画图时使用的画笔,删除背景时使用的刷子,选用的坐标系统等。Windows不允许直接存取设备环境结

6、构中成员的值,而是提供了一些API函数来改变里面的默认值。设备环境HDChdc;charsz[]=“Helloworld”;switch(message){caseWM_LBUTTONDOWN:HDChdc=::GetDC(hWnd);::SetTextColor(hdc,RGB(255,0,0));::SetBkColor(hdc,RGB(0,0,255));::TextOut(hdc,10,10,sz,strlen(sz));::ReleaseDC(hWnd,hdc);break;//......处理其他消息}demo03设备环境Windows的颜色和像素点DC上

7、的图形和文本都是由像素点组成的。内存中,用颜色的取值来表示像素点。色深指的是存储每个像素所用的位数,一般现在使用的都是24位色,即用24位表示一个像素,每种颜色都可以分为红,绿,蓝三原色,所以可以用红,绿,蓝三分量的组合来表示一种颜色,每个分量占用8位。在Win32编程中,统一使用32位的整数(一个COLORREF值)来表示深度为24位的颜色。设备环境可以使用RGB宏将三个分量的值组合在一起。用SetPixel函数设置某个像素点的颜色用GetPixel获取某个像素点的颜色#defineRGB(r,g,b)((COLORREF)(((BYTE)(r)

8、

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

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

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