实现背景颜色的渐变效果(code project)

转载 2006年06月22日 14:26:00

如果只是实现水平或垂直方向的背景色渐变,只需重载OnEraseBkgnd函数,具体代码如下:CDialog::OnEraseBkgnd(pDC);

CRect rect;
GetClientRect(&rect);

int r1=127,g1=127,b1=56; //Any start color
int r2=5,g2=55,b2=165; //Any stop color

for(int i=0;i<rect.Width();i++)    //如果是垂直方向则rect.Height(),下同
{
    int r,g,b;
    r = r1 + (i * (r2-r1) / rect.Width());
    g = g1 + (i * (g2-g1) / rect.Width());
    b = b1 + (i * (b2-b1) / rect.Width());
    pDC->FillSolidRect(i,0,1,rect.Height(),RGB(r,g,b));
}

return true;

如果要实现倾斜的渐变,需要加一函数,同时在OnInitDialog中调用

CDialog::OnEraseBkgnd(pDC);

CRect rect;
GetClientRect(&rect);

CDC dc2;
dc2.CreateCompatibleDC(pDC);
CBitmap *oldbmap=dc2.SelectObject(&m_bitmap);

/*We copy the bitmap into the DC*/
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dc2,0,0,SRCCOPY);
dc2.SelectObject(oldbmap);

return true;

void CYourClassName::MakeBitmap()
{
    CPaintDC dc(this);
    CRect rect;
    GetClientRect(&rect);

    int r1=245,g1=190,b1=240;
    int r2=130,g2=0,b2=0;

    int x1=0,y1=0;
    int x2=0,y2=0;

    CDC dc2;
    dc2.CreateCompatibleDC(&dc);

    if(m_bitmap.m_hObject)
        m_bitmap.DeleteObject();
    m_bitmap.CreateCompatibleBitmap(&dc,rect.Width(),
        rect.Height());

    CBitmap *oldbmap=dc2.SelectObject(&m_bitmap);

    while(x1 < rect.Width() && y1 < rect.Height())
    {
        if(y1 < rect.Height()-1)
            y1++;
        else
            x1++;

        if(x2 < rect.Width()-1)
            x2++;
        else
            y2++;

        int r,g,b;
        int i = x1+y1;
        r = r1 + (i * (r2-r1) / (rect.Width()+rect.Height()));
        g = g1 + (i * (g2-g1) / (rect.Width()+rect.Height()));
        b = b1 + (i * (b2-b1) / (rect.Width()+rect.Height()));

        CPen p(PS_SOLID,1,RGB(r,g,b));
        CPen *oldpen = dc2.SelectObject(&p);

        dc2.MoveTo(x1,y1);
        dc2.LineTo(x2,y2);

        dc2.SelectObject(oldpen);
    }

    dc2.SelectObject(oldbmap);

}

CSS实现网页背景颜色渐变的效果(火狐浏览器,IE,)

今天做网站时出现CSS实现网页背景颜色渐变的效果在IE里可以显示,但是在firefox里显示不出来。特地找出来在firefox里的实现。看到了这边文章,文章网址是:http://hi.baidu.co...

Android开发——实现背景颜色渐变效果

前言在Android开发当中,我们肯定会接到有业务需求是:让APP的某一些背景颜色产生渐变效果。那我们应该怎么去实现呢?接下就是我要为大家介绍的了。效果图 这是需求要达到的效果。接下来说一下是怎么实...

CSS实现网页背景颜色渐变的效果。

 来自:http://hi.baidu.com/%EC%BD%EC%BB%C2%FB%D1%D3/blog/item/28faf601af300ffe08fa939a.html 为了显示一个渐变而专门...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形。 GradientDrawable允许指定绘制图形的种类:LINE,OVAL,RECTANGLE...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

看到这个例子的标题RoundRects,我的第一感觉是介绍RoundRectShape, 打开例子看了代码却是使用GradientDrawable来实现的。 GradientDrawable 支...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

转自:http://www.imobilebbs.com/wordpress/?p=1620 GradientDrawable 支持使用渐变色来绘制图形,通常可以用作Button或是背景图形...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果[整理后的源码]

import android.app.Activity; import android.content.Context; import android.graphics.*; import andro...

Android GradientDrawable类的详解,设置activity的背景颜色渐变效果

转自: http://www.imobilebbs.com/wordpress/?p=1620 看到这个例子的标题RoundRects,我的第一感觉是介绍RoundRectShape, 打开...

百度图表柱子背景颜色使用渐变效果

一、运行效果二、具体代码var app = echarts.init(document.getElementById("box")); var option = { title...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实现背景颜色的渐变效果(code project)
举报原因:
原因补充:

(最多只允许输入30个字)