Windows程序设计:GDI映射模式

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;

效果:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值