散300分`求教一个有关问题`怎么慢慢的从当前的颜色渐变到另一种颜色`详细进内`
散300分`急啊`求教一个问题``如何慢慢的从当前的颜色渐变到另一种颜色``详细进内``
散300分``求教一个问题``如何慢慢的从当前的颜色渐变到另一种颜色``详细进内``
我要做的效果是和http://www.tmssoftware.com/这个网站里的AdvGlowButton这种效果,即鼠标移上去或离开,都会慢慢的渐变成另一种颜色```gdi+和gdi都无所谓``300分只给实现了的人`
http://community.****.net/Expert/topic/5399/5399863.xml?temp=9.782046E-02这里是我之前发的``
这贴100分``实现了``另外2贴给``还有上面那贴80分的`共380分``有做的朋友请指教一吓啦``急啊``
------解决方案--------------------
你的意思是要绘制有玻离效果的按钮?晚上回去研究下再告诉你!
------解决方案--------------------
鼠标移上与移出按钮颜色渐变,为了方便,用自定义窗体实现按钮功能,你可以自己完善一下。
源码已经发送到你的邮箱,如果是你要求的效果别忘给分哦,嘿嘿。
以下是自定义窗体部分源码,只实现你要求的功能,你可以自己完善。
void CRcColor::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CRect rc;
GetClientRect(&rc);
CBrush* pbrColor;
pbrColor=new CBrush;
pbrColor-> CreateSolidBrush(RGB(m_iRed,255-m_iRed,0));
CBrush* pOldBrush=dc.SelectObject(pbrColor);
dc.Rectangle(&rc);
dc.SelectObject(pOldBrush);
delete pbrColor;
// Do not call CWnd::OnPaint() for painting messages
}
LRESULT CRcColor::OnMouseLeave(WPARAM wParam,LPARAM lParam)
{
//MessageBox( " ");
m_bMouseTracking=FALSE;
m_bMouseInRect=FALSE;
if (m_bTimerRun==FALSE)
{
SetTimer(0,40,NULL);
}
return TRUE;
}
void CRcColor::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(!m_bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize=sizeof(TRACKMOUSEEVENT);
tme.dwFlags=TME_LEAVE;
tme.hwndTrack=this-> m_hWnd;
if(::_TrackMouseEvent(&tme))
{
m_bMouseTracking=TRUE;
}
m_bMouseInRect=TRUE;
SetTimer(0,40,NULL);
m_bTimerRun=TRUE;
}
CWnd::OnMouseMove(nFlags, point);
}
void CRcColor::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (m_bMouseInRect)
{
if (m_iRed <255)
{
m_iRed+=5;
Invalidate(FALSE);
}
else
{
KillTimer(0);
m_bTimerRun=FALSE;
}
}
else
{
if (m_iRed> 0)
{
m_iRed-=5;
Invalidate(FALSE);
}
else
{
KillTimer(0);
m_bTimerRun=FALSE;
}
}
CWnd::OnTimer(nIDEvent);
}
散300分``求教一个问题``如何慢慢的从当前的颜色渐变到另一种颜色``详细进内``
我要做的效果是和http://www.tmssoftware.com/这个网站里的AdvGlowButton这种效果,即鼠标移上去或离开,都会慢慢的渐变成另一种颜色```gdi+和gdi都无所谓``300分只给实现了的人`
http://community.****.net/Expert/topic/5399/5399863.xml?temp=9.782046E-02这里是我之前发的``
这贴100分``实现了``另外2贴给``还有上面那贴80分的`共380分``有做的朋友请指教一吓啦``急啊``
------解决方案--------------------
你的意思是要绘制有玻离效果的按钮?晚上回去研究下再告诉你!
------解决方案--------------------
鼠标移上与移出按钮颜色渐变,为了方便,用自定义窗体实现按钮功能,你可以自己完善一下。
源码已经发送到你的邮箱,如果是你要求的效果别忘给分哦,嘿嘿。
以下是自定义窗体部分源码,只实现你要求的功能,你可以自己完善。
void CRcColor::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CRect rc;
GetClientRect(&rc);
CBrush* pbrColor;
pbrColor=new CBrush;
pbrColor-> CreateSolidBrush(RGB(m_iRed,255-m_iRed,0));
CBrush* pOldBrush=dc.SelectObject(pbrColor);
dc.Rectangle(&rc);
dc.SelectObject(pOldBrush);
delete pbrColor;
// Do not call CWnd::OnPaint() for painting messages
}
LRESULT CRcColor::OnMouseLeave(WPARAM wParam,LPARAM lParam)
{
//MessageBox( " ");
m_bMouseTracking=FALSE;
m_bMouseInRect=FALSE;
if (m_bTimerRun==FALSE)
{
SetTimer(0,40,NULL);
}
return TRUE;
}
void CRcColor::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if(!m_bMouseTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize=sizeof(TRACKMOUSEEVENT);
tme.dwFlags=TME_LEAVE;
tme.hwndTrack=this-> m_hWnd;
if(::_TrackMouseEvent(&tme))
{
m_bMouseTracking=TRUE;
}
m_bMouseInRect=TRUE;
SetTimer(0,40,NULL);
m_bTimerRun=TRUE;
}
CWnd::OnMouseMove(nFlags, point);
}
void CRcColor::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if (m_bMouseInRect)
{
if (m_iRed <255)
{
m_iRed+=5;
Invalidate(FALSE);
}
else
{
KillTimer(0);
m_bTimerRun=FALSE;
}
}
else
{
if (m_iRed> 0)
{
m_iRed-=5;
Invalidate(FALSE);
}
else
{
KillTimer(0);
m_bTimerRun=FALSE;
}
}
CWnd::OnTimer(nIDEvent);
}