슬라이더 컨트롤(Slider Control)
 
   1. 대화상자에 슬라이더을 붙이자.
 
   2. 슬라이더 컨트롤의 컨트롤 변수 추가
      CSliderCtrl         m_ctrSlider;
 
   3. 슬라이더 컨트롤 설정
      // 사용영역 값 설정한다.
      m_ctrSlider.SetRange(0, 100);

      // 최소 값 설정.
      m_ctrSlider.SetRangeMin(0);

      // 최대 값을 설정.
      m_ctrSlider.SetRangeMax(100);
 
      // 위치 설정.
      m_ctrSlider.SetPos(50);
 
      // 눈금 간격을 설정한다.
      // 속성Tick MarksAuto TicksTrue로 되어 있어야 한다.
      m_ctrSlider.SetTicFreq(10);

      // 키보드 커서키로 슬라이더를 움직일때의 증가 크기를 설정
      m_ctrSlider.SetLineSize(1);

      // 키보드의 PgUp, PgDn키를 누르거나 마우스로 슬라이더의 몸동을 클릭시 움직일 크기
      m_ctrSlider.SetPageSize(10);
 
      // 슬라이더의 특정 영역 선택.
      // 속성Enable Selection RangeTrue로 되어 있어야 한다.
      m_ctrSlider.SetSelection(30, 70);
      // 선택영역 지운기.
      m_ctrSlider.ClearSel();
 
   4. 슬라이더가 이동 되었을때.
      - 슬라이더 컨트롤의 이벤트 NM_RELEASEDCAPTURE를 사용한다.
      - 마우스로 슬라이더의 이동이 끝난 후 발생한다.
         int nPos = m_ctrSlider.GetPos();   // 현재 슬라이더의 위치를 알아낸다.
 
   5. 슬라이더가 움직일때 마다 값을 알고자 한다면.
      - 대화상자의 메시지 WM_HSCROOL를 사용한다. 세로 슬라이더라면 WM_VSCROOL을 사용한다.
 
         void CDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
         {
            // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
 
            if(pScrollBar)
            {
               // 어떤 슬라이더인지 검사
               if(pScrollBar == (CScrollBar*)&m_ctrSlider)
               {
                  // 슬라이더의 위치를 검사한다.
                  int nPos = m_ctrSlider.GetPos();
               }
            }
            else
            {
               // CScrollView를 상속받은 뷰의 경우 프래임의 스크롤롤 동작시 pScrollBarNULL된다.
            }
 
            CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
         }
 
-------------------------------------------------------------
Posted by system
l