MFC_滑块控件使用
2014-04-10 21:02
281 查看
滑块控件:
SetRange设置范围SetPos设置进度
GetPos获得当前进度
使用示例:
picture控件:关联变量:CStatic m_Area;
文本框控件3个,关联变量(value型):
UINT m_nRvalue;
UINT m_nGvalue;
UINT m_nBvalue;
进度条控件3个,关联变量(控件型):
CSliderCtrl m_RSlider;
CSliderCtrl m_GSlider;
CSliderCtrl m_BSlider;
1、为对话框类添加成员变量:COLORREF m_cColor;//颜色变量,COLORREF 是一个 32-bit 整型数值,它代表了一种颜色。你可以使用 RGB 函数来
初始化 COLORREF。例如:COLORREF color=RGB(0,255,0);
2、对话框初始化时:
m_RSlider.SetRange(0,255);
m_GSlider.SetRange(0,255);
m_BSlider.SetRange(0,255);
m_cColor = RGB(0,0,0);
3、滑块滑动时会触发WM_HSCROLL消息,对话框会接受到,可由对话框响应。
(若是竖直进度条,则添加WM_VSCROLL响应函数)
void CPickColorDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
if (nSBCode == SB_THUMBTRACK)//SB_THUMBTRACK表示拖动滑块时,消息会不停的发送直到释放鼠标,因此npos是不停变化的。SB_THUMBPOSITION则表示,拖动完后,消息会发送,因此nPos只保存最后的值。
{
if (pScrollBar->m_hWnd == m_RSlider.m_hWnd)
{
m_nRValue = nPos;
UpdateData(FALSE);
}
if (pScrollBar->m_hWnd == m_GSlider.m_hWnd)
{
m_nGValue = nPos;
UpdateData(FALSE);
}
if (pScrollBar->m_hWnd == m_BSlider.m_hWnd)
{
m_nBValue = nPos;
UpdateData(FALSE);
}
}
m_clColor = RGB(m_nRValue, m_nGValue, m_nBValue);
UpdateArea();
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
}
4、上面提到的UpdateArea()函数,用于更新图片控件区域的颜色显示
需要在对话框类中添加成员函数:
public: void UpdateArea()
代码如下:
void CPickColorDlg::UpdateArea()
{
CDC* pDC = m_Area.GetDC();
CRect clientRC;
m_Area.GetClientRect(clientRC);//获取客户区大小
pDC->FillRect(clientRC,&CBrush(m_cColor));//填充区域
m_Area.ReleaseDC(pDC);
}
5、OnPaint()中也要添加UpdateArea();
6、为文本框控件添加EN_CHANGE消息响应函数。(当更改文本框内容时,滑块和Picture控件要做出相应响应)
代码如下:
void CPickColorDlg::OnChangeBvalue()
{
UpdateData(TRUE);
m_BSlider.SetPos(m_nBValue);
m_clColor = RGB(m_nRValue, m_nGValue, m_nBValue);
UpdateArea();
}
void CPickColorDlg::OnChangeRvalue()
{
UpdateData(TRUE);
m_RSlider.SetPos(m_nRValue);
m_clColor = RGB(m_nRValue, m_nGValue, m_nBValue);
UpdateArea();
}
void CPickColorDlg::OnChangeGvalue()
{
UpdateData(TRUE);
m_GSlider.SetPos(m_nGValue);
m_clColor = RGB(m_nRValue, m_nGValue, m_nBValue);
UpdateArea();
}
相关文章推荐
- MFC-滑块控件的使用
- MFC-滑块控件的使用
- MFC中滑块控件(Slide Control)的使用
- MFC控件:listctrl使用方法总结
- MFC中对Windows Media Player 控件使用个性皮肤
- MFCGridCtrl控件的使用
- MFC 定时器使用~检测控件是否获得焦点
- 使用Labview控件的MFC界面编程(一)
- MFC控件:listctrl使用方法总结
- MFC的图片控件的使用(图片适应控件大小并不失真)
- MFC可视化 列表控件的使用
- MFC ComboBox控件使用
- MFC中ListControl控件的使用
- MFC控件(10): Date Time Picker-使用及日期运算
- MFC tab控件的使用[zz]
- VS2010 MFC使用TeeChart绘图控件之一:控件和类的导入
- 关于MFC项目中使用WebBrowser控件禁止脚本错误的方法
- MFC控件 listcontrol 控件使用总结
- MFC控件使用说明(combo box Button Check Box Radio Button List Control Edit Box Hot Key IP Address....)
- MFC中CTreeCtrl控件的简单使用