티스토리 뷰
목차
반응형
MFC 스크롤바, 다이얼로그 예제 (동적 Scroll Bar)
오른쪽, 아래쪽의 스크롤바 scrollbar를 이용해 GDI로 구현된 도형을 움직이는 프로그램인데 버그가 많군요. 회사 소스를 그대로 올릴 순 없으니 『버그는 스크롤바 참조할 분』들이 알아서 고치면 될 듯.
동적으로 생성하는 막대기 만들기 소스입니다.
MFC로 만들기 방법은 아래 참조 사이트들을 자세히 살펴보세요.
동적 생성 만들기 방법 예제
Test_GDI_SCROLL
MFC 스크롤바 만들기 핵심 코드는 아래에 있습니다. 창의 크기가 변할 때마다 스크롤 바의 정보를 계속 갱신해주는 것이죠.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | void CTest_GDI_SCROLLDlg::OnSize(UINT nType, int cx, int cy) { // call base class OnSize CDialog::OnSize(nType,cx,cy); // update horizontal scroll bar info int HScrollMax = 0; HPageSize_ = 0; if ( cx < ViewWidth_) { HScrollMax = ViewWidth_ - 1; HPageSize_ = cx; HScrollPos_ = min(HScrollPos_,ViewWidth_ - HPageSize_ - 1); } SCROLLINFO si; si.fMask = SIF_PAGE | SIF_RANGE | SIF_POS; si.nMin = 0; si.nMax = HScrollMax; si.nPos = HScrollPos_; si.nPage = HPageSize_; SetScrollInfo(SB_HORZ,&si,TRUE); // update vertical scrollbar info int VScrollMax = 0; VPageSize_ = 0; if( cy < ViewHeight_) { VScrollMax = ViewHeight_ - 1; VPageSize_ = cy; VScrollPos_ = min(VScrollPos_,ViewHeight_ - VPageSize_ - 1); } si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; si.nMin = 0; si.nMax = VScrollMax; si.nPos = HScrollPos_; si.nPage = VPageSize_; SetScrollInfo(SB_VERT,&si,TRUE); } | cs |
아래는 제가 참조했던 사이트와 프로그램입니다.
MFC Scrollbar 참조 사이트
스크롤바 참조 프로그램 - 1
동적 생성 만들기 방법 예제
스크롤바 참조 프로그램 - 2
동적 생성 만들기 방법 예제
MFC 스크롤바, 다이얼로그 예제 (동적 Scroll Bar)
반응형