mfc_Slider_ctrl - 8BitsCoding/RobotMentor GitHub Wiki


์ด๋ฏธ์ง€

์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด Slider Ctrl๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์ž.

์šฐ์„  Slider Ctrl๊ณผ List Ctrl์„ ๋ณ€์ˆ˜์ถ”๊ฐ€ํ•จ.

BOOL CMFCApplication1Dlg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// ์ด ๋Œ€ํ™” ์ƒ์ž์˜ ์•„์ด์ฝ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.  ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฃผ ์ฐฝ์ด ๋Œ€ํ™” ์ƒ์ž๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ์—๋Š”
	//  ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ด ์ž‘์—…์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
	SetIcon(m_hIcon, TRUE);			// ํฐ ์•„์ด์ฝ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
	SetIcon(m_hIcon, FALSE);		// ์ž‘์€ ์•„์ด์ฝ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

	// TODO: ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ ์ดˆ๊ธฐํ™” ์ž‘์—…์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

	m_my_slider.SetRange(50, 150);
	// ๋ฒ”์œ„๋ฅผ 50 ~ 150 ์ง€์ •
	m_my_slider.SetTicFreq(10);
	// Tic์„ ์–ผ๋งˆ๋งˆ๋‹ค ํ•œ ๋ฒˆ์”ฉ ๊ทธ๋ฆด์ง€ ์ง€์ •

	return TRUE;  // ํฌ์ปค์Šค๋ฅผ ์ปจํŠธ๋กค์— ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด TRUE๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
}

๊ฐ€์žฅ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• OnNMReleasedcaptureMySlider ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑ ํ›„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์“ด๋‹ค.

void CMFCApplication1Dlg::OnNMReleasedcaptureMySlider(NMHDR *pNMHDR, LRESULT *pResult)
{
	/*
	int pos = m_my_slider.GetPos();

	CString str;
	str.Format(L"%d", pos);
	int index = m_event_list.InsertString(-1, str);

	m_event_list.SetCurSel(index);
	*/

	*pResult = 0;
}

ํ•˜์ง€๋งŒ ๋“œ๋ž˜๊ทธ์™€ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋จ

void CMFCApplication1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
	// ์„ฌ์„ธํ•œ Slider Ctrl ์ปจํŠธ๋กค
	if (pScrollBar != NULL && pScrollBar->GetDlgCtrlID() == IDC_MY_SLIDER) {
		if (nSBCode == SB_THUMBTRACK) {
			// SB_THUMBTRACK : ๋งˆ์šฐ์Šค ๋“œ๋ ˆ๊ทธ ์ฒ˜๋ฆฌ
			CString str;
			str.Format(L"%d", nPos);
			int index = m_event_list.InsertString(-1, str);
			m_event_list.SetCurSel(index);
		}
		else if (nSBCode == SB_ENDSCROLL) {
			// SB_ENDSCROLL : ๋งˆ์šฐ์Šค ํด๋ฆญ์ด๋‚˜ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ
			int pos = m_my_slider.GetPos();
			CString str;
			str.Format(L"%d", pos);
			int index = m_event_list.InsertString(-1, str);
			m_event_list.SetCurSel(index);
		}


	}
	CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}

OnHScroll๋ฅผ ์ •์˜ํ•˜์—ฌ ์“ฐ๋ฉด ๋“œ๋ž˜๊ทธ ๋ฐ ํ‚ค๋ณด๋“œ ์ฒ˜๋ฆฌ๋ฅผ ๋ชจ๋‘ ํ•  ์ˆ˜ ์žˆ์Œ.