• 学习windows编程 day4 之 映射模式


    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rect;
        int iOldMap;
        switch (message)
        {
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ps);
            GetClientRect(hwnd, &rect);
    //映射模式:改变xy轴方向,长度度量单位
            //默认MM_TEXT x向右  y向下 单位px
            TextOut(hdc, 100, 100, L"MM_TEXT", 7);
    
            iOldMap=GetMapMode(hdc);
    
    //改变映射模式 setmapmode
            //MM_LOMETRIC    x向右 y向上 单位0.1mm
            //MM_HIMETRIC     x向右 y向上 单位0.01mm
            //MM_LOENGLISH   x向右 y向上 单位0.01in
            //MM_HIENGLISH   x向右 y向上 单位0.001in
            //MM_TWIPS         x向右 y向上 单位1/1440in    1/20个打印点    少
            //MM_ISOTROPIC   x向右 y向上 任意x=y    可选    各向同性
            //MM_ANISOTROPIC x向右 y向上 任意x!=y    可选    各向异性
    
            //MM_LOMETRIC x向右 y向上 单位0.1mm
            SetMapMode(hdc, MM_LOMETRIC);
            TextOut(hdc, 1000, -1000, L"MM_LOMETRIC", 11);//10cm
    
            //MM_HIMETRIC     x向右 y向上 单位0.01mm
            SetMapMode(hdc, MM_HIENGLISH);
            TextOut(hdc, 1000, -1000, L"MM_HIMETRIC", 11);//1cm
    
            //恢复默认模式
            SetMapMode(iOldMap);
            EndPaint(hwnd, &ps);
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        }
    
    
        return DefWindowProc(hwnd, message, wParam, lParam);
    }

    1. 注意无论映射模式是哪一种:所获得的信息都是以像素为单位的

    2.客户区设备坐标是指客户区左上角,全窗口坐标是指窗口左上角(包括标题栏等getwindowsdc获取)

  • 相关阅读:
    CreateProcess的使用方法
    数据库课程设计
    OC可变參数的函数实现va_start、va_end、va_list的使用
    Tiny语言执行环境TM机源码
    LeetCode:Triangle
    [LeetCode] Word Search [37]
    关闭对话框,OnClose和OnCancel
    【Hibernate步步为营】--继承映射具体解释
    hdu 4499 Cannon(暴力)
    String.Format使用方法
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8511131.html
Copyright © 2020-2023  润新知