过渡有很多种,比如蓝色渐变、红色渐变...(用过Photoshop吧)
我也做过,但是是根据需要编程来改变r、g、b的值

解决方案 »

  1.   

    void CColorDlg::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default

    CRect rect;
    this->GetClientRect(rect);
    CDC* pDC = CDC::FromHandle(::GetDC(this->m_hWnd));//hwnd 是创建的窗口的句柄。
    CBrush pBrush(RGB(r,g,b));
    pDC->FillRect(rect,&pBrush);


    if(r>255)
    {
    if(g>255)
    {
    if(b>255)
    {
    KillTimer(668);
    CDialog::OnCancel();
    }
    b+=2;
    }
    g+=2;
    }
    r+=2; CDialog::OnTimer(nIDEvent);
    }
    r,g,b分别是红绿蓝三种色彩的值,从0到255。你可以采用类似的方法去检验一下。
      

  2.   

    比如:
    int r = g = b = 255;
    BOOL flg;
    flg = TRUE;
    for(int i=0; i<1000; i++){
      if(flg){ r --; r = r < 0 ? 255 : r;}
      else{ g --; g = g < 0 ? 255 : g;}
      flg = !flg;
    }
    这是蓝色渐变