슬라이더 컨트롤 사용

1612 단어 VC++
슬라이더 컨트롤 및 정적 텍스트 컨트롤을 추가하는 새 대화 상자 프로그램:
슬라이더 컨트롤:IDCSLIDER1, 연결 컨트롤 변수: mslider
슬라이더 컨트롤 속성을 설정하여 눈금을 표시합니다. Auto Ticks: True;Tick Marks:True
정적 텍스트 컨트롤: IDCSTATIC_VALUE, 연결 제어 변수 mstaticValue
OnInitDialog()에서 슬라이더 컨트롤을 초기화합니다.
m_slider.SetRange(1,50);  //    
	m_slider.SetPos(2);   //      
	CString str;
	str.Format("%d",m_slider.GetPos());
	m_staticValue.SetWindowText(str);
	m_slider.SetPageSize(3);   //               
	m_slider.SetTicFreq(5);    //      

메시지 응답 NM 추가슬라이더를 이동할 때 사용자가 반응할 수 있도록 CUSTOMDRAW
void CMoveTestDlg::OnCustomdrawSlider1(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMCUSTOMDRAW pNMCD = reinterpret_cast(pNMHDR);
	// TODO:               
	CString str;
	str.Format("%d",m_slider.GetPos());   //       
	m_staticValue.SetWindowTextA(str);
	*pResult = 0;
}

키보드의 좌우 방향키 핸들을 통해 이동하려면PreTranslateMessage 허함수를 다시 씁니다
BOOL CMoveTestDlg::PreTranslateMessage(MSG* pMsg)
{
	if( pMsg->message == WM_KEYDOWN )  //      
	{
		int nValue=m_slider.GetPos();
		CString str;
		//     
		switch( pMsg->wParam )
		{ 
		case VK_LEFT://    
			nValue-=1;  //   1
			m_slider.SetPos(nValue); //    
			str.Format("%d",nValue);  
			m_staticValue.SetWindowTextA(str);  //      
			break; 

		case VK_RIGHT://    
			nValue+=1;  //   1
			m_slider.SetPos(nValue); //    
			str.Format("%d",nValue);  
			m_staticValue.SetWindowTextA(str);  //      
			break;   
		default: 
			break; 
		}
	}

	return CDialogEx::PreTranslateMessage(pMsg);
}

좋은 웹페이지 즐겨찾기