Windows程序设计:GDI映射模式

来源:互联网 发布:2016版excel数据有效性 编辑:程序博客网 时间:2024/05/22 10:26

Windows有多种映射模式可以选择:

#define MM_TEXT             1   //1逻辑单位=1像素#define MM_LOMETRIC         2   //1逻辑单位 = 0.1mm#define MM_HIMETRIC         3   //1逻辑单位 = 0.01mm#define MM_LOENGLISH        4#define MM_HIENGLISH        5   //1 = 0.01in = 0.254mm#define MM_TWIPS            6#define MM_ISOTROPIC        7#define MM_ANISOTROPIC      8
一般在Windows编程中,默认模式不够精确,不能准确地描述图形

不同分辨率的显示器的换算单位也不一样

所以我们需要改变映射模式

模式样式:

TEXT模式:



LOMETRIC:模式



HIMMETRIC模式:


ENGLISH模式:



MM_TWIPS模式:



具体适用案例:

    case WM_PAINT:        {            PAINTSTRUCT ps;            HDC hdc = BeginPaint(hWnd, &ps);            int iMapMode = GetMapMode(hdc);SetMapMode(hdc, MM_TEXT);   //TEXT模式Rectangle(hdc, 200, 200, 400, 400);SetMapMode(hdc, MM_LOMETRIC);Rectangle(hdc, 200, -200, 400, -400);SetMapMode(hdc, MM_HIMETRIC);Rectangle(hdc, 200, -200, 400, -400);SetMapMode(hdc, iMapMode);            EndPaint(hWnd, &ps);        }        break;

效果: