• 学习windows编程 day3 之 自定义画笔的两种方法


    LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        HDC hdc;
        PAINTSTRUCT ps;
        RECT rect;
        HPEN hPen, hOldPen;
    
        switch (message)
        {
        case WM_PAINT:
            hdc = BeginPaint(hwnd, &ps);
            GetClientRect(hwnd, &rect);
        //1.获取画笔
            //hPen=GetStockObject(BLACK_PEN);
        //2.自己新建画笔
    //方法一:
            //封闭图像时,使用线宽中间作为边界,所以会比想要的大小多出来一部分(线宽大小)
            //hPen = CreatePen(PS_SOLID, 100, RGB(255,0,0));
            //对于虚线而言,若是线宽大于1则会显示实现,原来线条的样式失效
            //hPen = CreatePen(PS_DASH ,0.1, RGB(255, 0, 0));
            //hPen = CreatePen(PS_DASHDOT, 0.1, RGB(255, 0, 0));
            //hPen = CreatePen(PS_DASHDOTDOT, 0.1, RGB(255, 0, 0));
            //用于封闭图像的使用:在后面可以进行填充    边框向内压缩
            //hPen = CreatePen(PS_INSIDEFRAME, 10, RGB(255, 0, 0));
    
    
    //方法二:
            LOGPEN pen[10];
            for (int i = 0; i < 10;i++)
            {
                pen[i].lopnStyle = PS_SOLID;
                pen[i].lopnWidth.x = (i + 1) * 5;
                pen[i].lopnColor = RGB(20 * i, 0, 0);
            }
            //设置多个画笔样式
            //使用createpenindorect直接取出样式使用,代码简洁明了,也更加具有可重用性
            for (int i = 0; i < 10;i++)
            {
                hPen = CreatePenIndirect(&pen[i]);
    
                hOldPen = SelectObject(hdc, hPen);
    
                Ellipse(hdc, 100+30*i, 100, 300+30*i, 200);
    
                DeleteObject(hPen);
            }
    
    
    
    //         MoveToEx(hdc, rect.left, (rect.bottom-rect.top) / 2, NULL);
    //         LineTo(hdc, rect.right, (rect.bottom - rect.top) / 2);
    
    
            //只能删除自己定义的对象,系统带有的不允许删除
            //DeleteObject(hPen);
            SelectObject(hdc, hOldPen);
    
            EndPaint(hwnd, &ps);
    
            break;
        case WM_DESTROY:
            PostQuitMessage(0);
            return 0;
        }
    
    
        return DefWindowProc(hwnd, message, wParam, lParam);
    }
  • 相关阅读:
    centos 7 安装zabbix 4.0
    django Middleware
    初探paramiko
    python中的反射
    python异常处理
    双绞线
    简易的CMDB服务端
    4-初识Django Admin
    数据资产管理实践纲要
    matplotlib 散点图,为不同区域的点添加不同颜色
  • 原文地址:https://www.cnblogs.com/ssyfj/p/8506782.html
Copyright © 2020-2023  润新知