过渡有很多种,比如蓝色渐变、红色渐变...(用过Photoshop吧)
我也做过,但是是根据需要编程来改变r、g、b的值
我也做过,但是是根据需要编程来改变r、g、b的值
解决方案 »
- CClientDC 和CPaintDC的问题
- CArray的重载问题及其他问题
- 响应按下和弹起F10键两次,如何使之只响应一次?
- 一段ADO连接数据失败的例子,(主要是没连上SQL),能否帮忙指出原因?
- 自定义open 对话框,更改list view路径
- 请举个双重指针的简单例子!
- MS的SPY++的find windows不能捕获到label或者edit等控件,想问问如果想捕获其它程序的label上的caption上的值
- sos!请教,vc中ctrl+,ctrl-是什么命令!先答先得
- 如何控制console输出?
- 请问局域网的聊天室怎么编
- 怎样做一个象OFFICE助手一样的程序(散分!!)
- 转贴求救。(不算很难)
{
// 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。你可以采用类似的方法去检验一下。
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;
}
这是蓝色渐变