• win32-使用FillRect绘制具有渐变颜色的客户区域背景


    void OnEraseBkGnd(HWND hwnd)
    {
        /* Vars */
        HDC dc; /* Standard Device Context; used to do the painting */
    
        /* rect = Client Rect of the window;
        Temp = Temparory rect tangle for the color bands */
        RECT rect, temp;
        HBRUSH color; /* A brush to do the painting with */
    
        /* Get the dc for the wnd */
        dc = GetDC(hwnd);
    
        /* Get the client rect */
        GetClientRect(hwnd, &rect);
    
        /* Start color; Change the R,G,B values
        to the color of your choice */
        int r1 = 255, g1 = 0, b1 = 0;
    
        /* End Color; Change the R,G,B values
        to the color of your choice */
        int r2 = 255, g2 = 255, b2 = 0;
    
        /* loop to create the gradient */
        for (int i = 0; i < rect.right; i++)
        {
            /* Color ref. for the gradient */
            int r, g, b;
            /* Determine the colors */
            r = r1 + (i * (r2 - r1) / rect.right);
            g = g1 + (i * (g2 - g1) / rect.right);
            b = b1 + (i * (b2 - b1) / rect.right);
    
            /* Fill in the rectangle information */
    
            /* The uper left point of the rectangle
            being painted; uses i as the starting point*/
            temp.left = i;
            /* Upeer Y cord. Always start at the top */
            temp.top = 0;
            /* Okay heres the key part,
            create a rectangle thats 1 pixel wide */
            temp.right = i + 1;
            /* Height of the rectangle */
            temp.bottom = rect.bottom;
    
            /* Create a brush to draw with;
            these colors are randomized */
            color = CreateSolidBrush(RGB(r, g, b));
    
            /* Finally fill in the rectangle */
            FillRect(dc, &temp, color);
        }
    }

    将OnEraseBkGnd()放到WM_ERASEBKGND事件中。

  • 相关阅读:
    05-java学习-循环结构
    04-java学习-选择结构
    03-java学习-基本数据类型-运算符-键盘接收用户输入
    A02-java学习-classpath配置-标识符-java变量类型
    A01-java学习环境准备
    20190215面试-C#操作外设-多线程-shocket
    装饰者模式
    状态模式
    DllImport学习
    网络编程(一)----基础知识、数据流套接字
  • 原文地址:https://www.cnblogs.com/strive-sun/p/13098891.html
Copyright © 2020-2023  润新知