使用滚动条
用滚动条控件实现改变rgb三原色的调配
效果图如图一
图一
利用类向导为对话框添加OnHScroll方法
利用类向导为三个滚动条添加成员变量,类型为control类型
利用类向导为edit_control控件添加成员变量,类型为value,然后选string类型
在OnInitDialog中初始化滚动条
//设置滚动条的滚动范围和当前位置 m_RedScroll.SetScrollRange(0, 255); m_GreenScroll.SetScrollRange(0, 255); m_BlueScroll.SetScrollRange(0, 255); m_RedScroll.SetScrollPos(128); m_GreenScroll.SetScrollPos(128); m_BlueScroll.SetScrollPos(128);
重写OnScroll方法
int nCurPos = pScrollBar->GetScrollPos(); switch (nSBCode) { case SB_LINEDOWN: nCurPos += 1; break; case SB_LINEUP: nCurPos -= 1; break; case SB_PAGEDOWN: nCurPos += 10; break; case SB_PAGEUP: nCurPos -= 10; break; case SB_THUMBTRACK: nCurPos = nPos; break; default: break; } pScrollBar->SetScrollPos(nCurPos); BYTE nRed, nGreen, nBlue; nRed = m_RedScroll.GetScrollPos(); nGreen = m_GreenScroll.GetScrollPos(); nBlue = m_BlueScroll.GetScrollPos(); m_StrColorValue.Format("RGB(%d,%d,%d)", nRed, nGreen, nBlue); UpdateData(FALSE); CWnd *pWnd = GetDlgItem(IDC_SHOWCOLOR); CDC *pDC = pWnd->GetDC(); CRect Rect; pWnd->GetClientRect(&Rect); CBrush Brush(RGB(nRed, nGreen, nBlue)); pDC->FillRect(Rect, &Brush);
运行后即可
版权声明: