您的位置:首页 > 其它

关于vc6.0slider滑块控件背景图片经验总结

2011-06-09 22:30 267 查看
前段时间在写个程序需要用到slider控件,但是当我改变背景时slider背景并不像我想象的那样跟着改变,百度后终于解决。 但是新的问题有出现了,我对话框窗口改用图片后,slider滑块控件还是出问题了,百度也没得到结果。

白天不负苦心人,我想到了个非常笨的方法。可以做燃眉之急,以后找到好方法了再来鄙视。

先看效果图





啰嗦一下,如果是纯背景的话可以直接在oncolor中 改变slider滑块控件的背景

HBRUSH CPage2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


pDC->SetBkMode(TRANSPARENT);// 透明模式

if (nCtlColor==CTLCOLOR_STATIC)
{
pDC->SetTextColor(RGB(255,50,0));
return (HBRUSH)GetStockObject(NULL_BRUSH);//static背景透明
}
return hbr;
}


我的方法是把slider滑块控件对应的背景图片截下来,然后再oncolor中贴到slider滑块控件的背景 就ok了 代码如下

1.

OnInitDialog() 中初始化位图画刷

///位图画刷///////////////////////////////////////////////////////
CBitmap *pBitmap=new CBitmap;
pBitmap-> LoadBitmap(IDB_GMCslider1);
brushslider1.CreatePatternBrush(pBitmap);
delete pBitmap;
pBitmap=NULL;


2.

HBRUSH CPage4::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


if (pWnd == GetDlgItem(IDC_SLIDER1))
{
return (HBRUSH)brushslider2.GetSafeHandle();
}


return hbr;
}


ok。

本人很笨,如果哪位仁兄有更好的方法可分享下,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: