使用滚动条

用滚动条控件实现改变rgb三原色的调配

效果图如图一

使用滚动条_第1张图片

                               图一

利用类向导为对话框添加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);

运行后即可






你可能感兴趣的:(mfc,滚动条,scroll)