小甲鱼 发表于 2015-8-29 12:08:13

第019讲:窗口绘画:边框绘制函数

知识点回顾:


1. 几个绘制曲线的函数:

Rectangle——绘制矩形

Ellipse——绘制椭圆形

RoundRect——绘制带圆角矩形

Arc——绘制弧线

Chord——将弧的两个端点连接成一条弦,然后弦和弧共同组成一个封闭的区域

Pie——将弧的两个端点和椭圆的中心点连接在一起,形成一个扇形的封闭区域


2. 绘制以下图形:



关键代码清单:

      case WM_SIZE:
                cxClient = LOWORD(lParam);
                cyClient = HIWORD(lParam);
                return 0;

      case WM_PAINT:
                hdc = BeginPaint(hwnd, &ps);
               
                // 先画最外边的矩形,因为它在最底层
                Rectangle(hdc, cxClient / 8, cyClient / 8, 7 * cxClient / 8, 7 * cyClient / 8);
               
                // 接着画两条交叉的线
                MoveToEx(hdc, 0, 0, NULL);
                LineTo(hdc, cxClient, cyClient);

                MoveToEx(hdc, 0, cyClient, NULL);
                LineTo(hdc, cxClient, 0);

                // 再画一个椭圆,把交叉线的一部分给覆盖掉
                Ellipse(hdc, cxClient / 8, cyClient / 8, 7 * cxClient / 8, 7 * cyClient / 8);

                // 最后再椭圆的中间画一个圆角矩形
                RoundRect(hdc, cxClient / 4, cyClient / 4, 3 * cxClient / 4, 3 * cyClient / 4, cxClient / 4, cyClient / 4);

                EndPaint(hwnd, &ps);
                return 0;




WinSDK
页: [1]
查看完整版本: 第019讲:窗口绘画:边框绘制函数