WindowsSDK编程学习日记(2)

2009年2月26日

 

GDI相关学习

 

GDI:图形设备接口

 

Windows下不允许直接访问输入输出硬件,而是提供了设备环境和图形设备接口进行操作,以不比关心具体硬件区别。

 

待解决:目前对视口、窗口的区别理解不深,对映射模式理解不深

 

windows下绘图的基本步骤就是:获取设备环境句柄(DC)、构建绘图工具(画刷、笔等)、将绘图工具选入设备环境(相应dc)、绘制图形、释放绘图工具以及设备环境句柄

 

 

  1. 获取句柄(DC的Handle)常用:BeginPaint(仅当处理WM_PAINT消息时应当使用),GetDC(任何时候使用)。使用到PAINTSTRUCTURE,这是一个传出参数,不需要初始化初值。对于设备环境句柄,当前可以通俗的理解成,它代表了即将绘图的区域,即画布。
  2. 构建绘图工具:可以使用系统预定义(使用GetStockObject),也可以自己构造,CreateSolidBrush、CreatePen等函数
  3. 选入设备环境:用SelectObject函数。笔将勾勒所画图形边缘,画刷将填充内部。
  4. 绘制:直线、折现、椭圆、弧等等均有相应函数对应。
  5. 释放:DeleteObject释放绘图工具。而EndPaint和ReleaseDC分别对应两种获取DC的方式。

需要熟悉常用函数名字

 

 

 

 

图形与文本在Windows中没有明显的界限

 

文本的操作一样分三步:获取文本句柄,设置文本形体,将字体选入dc

 

字体分为物理字体和逻辑字体,逻辑字体可以精确标度,因此使用广泛

 

Windows提供7中预定义字体(可在GetStockObject函数中查到),SYSTEM是缺省字体

 

CreateFont创建字体,多数参数0代表默认。其中字符集和字体比较重要

 

设置字体颜色的函数为SetTextColor,背景:SetBkColor

 

     

     

     

    获取字体信息:GetTextMetrics(hdc,&tm)

    tm储存了返回的字体信息

    确定后续文本坐标:GetTextExtentPoint32

    lpSize返回字符串字体的高度和宽度

    文本输出:常用TextOut

     

你可能感兴趣的:(编程,windows,System,工具,图形)