99上位机VC MFC滑块控件实现贴图美化及位置文本显示
99上位机VC MFC滑块控件实现贴图美化及位置文本显示
功能展示
滑块控件用鼠标拖动时,只能大概知晓滑块当前的位置,如果我们让滑块当前位置以文字形式显示给用户,就会更加方便用户操作滑块,我们当前例程实现的效果如图,贴图可自行更换更漂亮的,位置显示百分比同时,右侧红色值也会以百分比显示 要点提示 我们当前例程以自定义派生类进行贴图及添加提示文本实现。调用 BuildThumbItem()设置滑块的图片,调用 BuildBackItem()设置滑块背景的图片;
实现功能 1.新建基于对话框的应用程序 2.将例程目录中六文件BitItem.cpp,BitItem.h, BitSlider.cpp, BitSlider.h,BitWnd.cpp,BitWnd.h复制到自己工程根目录中,并加载到自己的工程当中; 在对话框资源中添加滑块控件,关联变量 CBitSlider m_BitSlider; 在OnInitDialog()函数中初始化此变量 m_BitSlider.SetFlipCursor(: oadCursor(NULL,IDC_HAND));//滑块鼠标 m_BitSlider.BuildThumbItem(IDB_VERTICAL_THUMB,24, 12);//滑块图标 m_BitSlider.BuildBackItem(IDB_VERTICAL_NORMAL,IDB_VERTICAL_ACTIVE);//滑块背景 m_BitSlider.SetLeftOffset(3);//滑块图标偏移量 m_BitSlider.SetRange(0, 255);//滑块范围 3.添加一图件控件,用于显示滑块设置颜色值的效果,设置其ID为IDC_RECT 4。因我们例程滑块设置为垂直属性,所以添加OnVScroll()进行颜色值的设置 void CGkbc8Dlg::OnVScroll(UINT nSBCode, UINT nPos,CScrollBar* pScrollBar) { if((CBitSlider*)pScrollBar==&m_BitSlider) { CBrushbr(RGB(m_BitSlider.GetPos(),0,0)); CRect rc; CDC *pDC =GetDlgItem(IDC_RECT)->GetDC(); GetDlgItem(IDC_RECT)->GetClientRect(rc); pDC->FillRect(rc,&br); GetDlgItem(IDC_RECT)->ReleaseDC(pDC); } CDialog::OnVScroll(nSBCode,nPos, pScrollBar); } 我们来演示下功能实现的整个过程
|