windows序设计06.pptVIP

  • 0
  • 0
  • 约7.46千字
  • 约 34页
  • 2017-05-15 发布于贵州
  • 举报
windows序设计06

Windows绘图 董本志 图形基础 图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在显示器和打印机上显示图形,GDI是Windows非常重要的部分。不只应用系统在显示视觉信息时使用GDI,就连Windows本身也使用GDI来显示使用者接口对象,诸如菜单、滚动条、图标和鼠标光标。 GDI 的结构 GDI由几百个函数调用和一些相关的数据类型、宏和结构组成 。 GDI原理--支持与设备无关的图形 GDI函数调用 取得(或者建立)和释放(或者清除)设备上下文的函数 GetDC和RealseDC 以及BeginPaint和EndPaint 取得有关设备上下文信息的函数GetTextMetrics 绘图函数 DrawText 设定和取得设备上下文参数的函数 SetTextColor和 GetTextColor 建立GDI对象的函数 CreatePen、 CreateBrush GDI基本图形 直线和曲线 GDI支持直线、矩形、椭圆(包括椭圆的子集,也就是我们所说的「圆」)、椭圆圆周上的部分曲线即弧以及贝塞尔曲线(Bezier spline) 填充区域 使用目前GDI画刷对象进行填图 位图 GDI支持两种型态的位图:设备相关位图,是GDI对象;设备无关位图(或者DIB),可以储存在磁盘文件中。 文字 TrueType字体(填充轮廓线 ) 和点阵字体 GDI辅助函数 映像模式和变换 绘图区域 路径 剪裁 调色板 打印 设备上下文 设备上下文中包含许多确定GDI函数如何在设备上工作的当前属性,这些属性允许传递给GDI函数的参数只包含起始坐标或者尺寸信息,而不必包含Windows在设备上显示对象时需要的所有其它信息。例如,调用TextOut时,您只需要在函数中给出设备上下文句柄、起始坐标、文字和文字的长度。您不必指定字体、文字颜色、文字后面的背景色彩以及字符间距,因为这些属性都是设备上下文的一部分。当您想改变这些属性之一时,您调用一个可以改变设备上下文中属性的函数,以后针对该设备上下文的TextOut调用来使用改变后的属性。 图形的绘制 一、画点和线 1、设定像素 2、画线 3、边界框函数 4、贝塞尔曲线 * 一、取得设备上下文句柄 1、在处理WM_PAINT消息时,使用BeginPaint和EndPaint函数调用 hdc = BeginPaint (hwnd, ps) ; 其它行程序 EndPaint (hwnd, ps) ; 2、在处理非WM_PAINT消息时取得设备上下文句柄 hdc = GetDC (hwnd) ; 其它行程序 ReleaseDC (hwnd, hdc) ; 3、取得适用于整个窗口(而不仅限于窗口的显示区域)的设备上下文句柄 hdc = GetWindowDC (hwnd) ; 其它行程序 ReleaseDC (hwnd, hdc) ; 一、取得设备上下文句柄(续) 4、通用的函数 hdc = CreateDC (pszDriver, pszDevice, pszOutput, pData) ; 其它行程序 DeleteDC (hdc) ; 5、取得内存设备上下文句柄 hdcMem = CreateCompatibleDC (hdc) ; 其它行程序 DeleteDC (hdcMem) ; 二、取得设备上下文信息GetDeviceCaps iValue = GetDeviceCaps (hdc, iIndex) ; 例如,iIndex为HORZRES时将使GetDeviceCaps传回设备的宽度(单位为像素);iIndex为VERTRES时将让GetDeviceCaps传回设备的高度(单位为像素)。 见例子程序Win32Program01。 Windows GDI色彩的表示 在大多数GDI函数调用中,使用COLORREF值(只是一个32位的无正负号长整数)来表示一种色彩。COLORREF值按照红、绿和蓝色的亮度指定了一种颜色,通常叫做“RGB色彩 ” 。 RGB宏要求三个参数分别代表红、绿和蓝值,然后将它们组合为一个无正负号长整数: #define RGB(r,g,b) ((COLORREF)(((BYTE)(r) | \ ((WORD)((BYTE)(g)) 8)) | \ (((DWORD)(BYTE)(b)) 16))) RGB (255, 255, 0)是0x0000FFFF,即黄色(红色和绿色的合成)。 1、设定像素 Win

文档评论(0)

1亿VIP精品文档

相关文档