MFC学习之GDI(一)

设备描述表即设备环境的属性的集合
系统为每个窗口建立了一个PAINSTRUCTURE结构

Typerdef struct tagPAINSTRUCT 
{
    HDC hdc;              //设备环境句柄
    BOOL fErase;          //一般取真值,表示擦除无效矩形的背景 
    RECT rcPaint;         //无效矩形标识
    BOOL fRestore;        //系统保留
    BOOL fIncUpdate;      //系统保留
    BYTE rgbReservered[16];     //系统保留
}PAINSTRUCT;

获取设备环境的方法
1. 调用BeginPaint函数

hdc = BeginPaint(hwnd, &ps);            //ps为PAINTSTRUCT类型结构
void EndPaint(HWND hwnd,PAINSTRUCT &ps);   //用以释放设备环境
  1. 调用GetDC函数
hdc = GetDC(hwnd);
void releaseDC(HWND hwnd);      //用以释放设备环境

映像模式
映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑设备输出设备的坐标系情况。
* 窗口
对应逻辑坐标系上的程序员设定的区域
* 视口
对应实际输出设备上程序员设定的区域

映像模式一个逻辑单位映射为坐标系设定
MM_ANISOTROPIC系统确定Optional
MM_HIENGLISH0.001英寸Y上,X右
MM_HIMETRIC0.01mmY上,X右
MM_ISOTROPIC系统确定Optional
MM_LOENGLISH0.01英寸Y上,X右
MM_LOMETRIC0.1mm同上
MM_TEXT一个像素Y下,X右
MM_TWIPS1/1440英寸Y上,X右

应用程序可获取设备环境的当前映像模式,并根据需要设置映像模式。

SetMapMode(hdc,nMapMode);       //设置设备环境的映像模式,
nMapMode = GetMapMode(hdc);     //
BOOL SetWindowExtEx         //设置窗口区域
(
    HDC hdc,
    int nHeightm=,nWidth,
    LPSIZE lpSize
)
BOOL SetViewportExtEx       //设置视口区域
(
    HDC hdc,
    int nHeight,nWidth,
    LPSIZE spSize
)

窗口和视口的缺省原点为(0,0)。可通过调用函数SetViewportOrgEx和SetWindowOrgEx设定。

BOOL SetWindowOrgEx
(
HDC hdc,
int X,Y,
LPPOINT lpPoint
)

转载于:https://my.oschina.net/meczhang/blog/1602555

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值