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๋ฅผ ์ ์ํ์ฌ ์ฐ๋ฉด ๋๋๊ทธ ๋ฐ ํค๋ณด๋ ์ฒ๋ฆฌ๋ฅผ ๋ชจ๋ ํ ์ ์์.