티스토리 뷰

목차

    반응형

    MFC 스크롤바, 다이얼로그 예제 (동적 Scroll Bar)


    오른쪽, 아래쪽의 스크롤바 scrollbar를 이용해 GDI로 구현된 도형을 움직이는 프로그램인데 버그가 많군요. 회사 소스를 그대로 올릴 순 없으니 『버그는 스크롤바 참조할 분』들이 알아서 고치면 될 듯. 


    동적으로 생성하는 막대기 만들기 소스입니다.


    MFC로 만들기 방법은 아래 참조 사이트들을 자세히 살펴보세요.


    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


    아래는 제가 참조했던 사이트와 프로그램입니다.





    스크롤바 참조 프로그램 - 1



    MFC 스크롤바 예제동적 생성 만들기 방법 예제




    스크롤바 참조 프로그램 - 2



    MFC 스크롤 레벨 에디터동적 생성 만들기 방법 예제


    MFC 스크롤바, 다이얼로그 예제 (동적 Scroll Bar)

    반응형