看流星社区

 找回密码
 注册账号
查看: 2093|回复: 0

图形界面 时钟表盘

[复制链接]

该用户从未签到

发表于 2017-6-2 13:28:13 | 显示全部楼层 |阅读模式
代码:

//POINT的数组可以这么用
        POINT pt[]={
                0, 450,
                225,390,
                390,225,
                450,0,
                390,-225,
                225,-390,
                0,-450,
                -225,-390,
                -390,-225,
                -450,0,
                -390,225,
                -225,390
        };


SetIsotropic函数:设置坐标系

//改变坐标系就用这四个函数void SetIsotropic(HDC hdc, int cx, int cy){::SetMapMode(hdc, MM_ISOTROPIC); //设置坐标映射方式::SetWindowExtEx(hdc, 1000, 1000, NULL); //设置坐标系的逻辑单位::SetViewportExtEx(hdc, cx, -cy, NULL); //设置坐标系方向和坐标系包含的范围,即定义域和值域::SetViewportOrgEx(hdc, cx/2, cy/2, NULL);
//设置坐标系原点坐标}




case WM_PAINT:
                hdc = BeginPaint(hWnd, &ps);
                // TODO: 在此添加任意绘图代码...
                //画钟表盘
                int cxClient, cyClient;
                RECT rect;
                ::GetClientRect(hWnd, &rect);
                cxClient = rect.right - rect.left;
                cyClient = rect.bottom - rect.top;

                SetIsotropic(hdc, cxClient, cyClient);

#define  SQUARESIZE 10
                ::SelectObject(hdc, ::GetStockObject(BLACK_BRUSH));
                for(int i=0;i<12;i++)
                {
                        ::Ellipse(hdc, pt[i].x-SQUARESIZE,pt[i].y+SQUARESIZE,pt[i].x+SQUARESIZE, pt[i].y-SQUARESIZE);
                }

                EndPaint(hWnd, &amp;ps);
                break;
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 感恩
您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

小黑屋|手机版|Archiver|看流星社区 |网站地图

GMT+8, 2024-3-19 15:17

Powered by Kanliuxing X3.4

© 2010-2019 kanliuxing.com

快速回复 返回顶部 返回列表