윈도우 크기 변경

출처 : http://www.tipssoft.com/bulletin/board.php?bo_table=update&wr_id=275

CDialog에서 계승받은 ResizingChildWndDlg클래스에 OnSize()함수에 아래와 같은 코드를

추가합니다.

 
    void CResizingChildWndDlg::OnSize(UINT nType, int cx, int cy)
    {
        CDialog::OnSize(nType, cx, cy);

 

     CRect r;

     GetClientRect(r);

 

     if(GetDlgItem(IDC_STATIC_1) != NULL){

         // 좌우 여백을 10씩 그리고 두 윈도우간 여백을 2로 준다고 가정.

         // 따라서 두 Static 컨트롤의 폭은 대화상자의 폭에서 좌우여백을 각각 10씩 배고

         // 두 컨트롤간의 간격인 2를뺀 값을 2로 나누면 각각의 폭이 나오게 된다.

         //  , (r.Width() - 22)/2 값이 static 컨트롤의 폭인된다.

         int child_width = (r.Width() - 22)/2;

 

         // Static 컨트롤의 크기를 재조정한다.

         GetDlgItem(IDC_STATIC_1)->SetWindowPos(NULL, 10, 10, child_width, r.Height() - 20, 0);

         GetDlgItem(IDC_STATIC_2)->SetWindowPos(NULL, 10 + 2 + child_width, 10, child_width,

                                                                              r.Height() - 20, 0);

 

         // Static 컨트롤의 텍스트가 변경된 위치에 제대로 출력되도록 갱신한다.

         GetDlgItem(IDC_STATIC_1)->Invalidate();

         GetDlgItem(IDC_STATIC_2)->Invalidate();

      }

}

 

by amplengine | 2008/05/15 01:55 | Prog Skill | 트랙백 | 덧글(0)

트랙백 주소 : http://amplengin2.egloos.com/tb/342631
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글

◀ 이전 페이지다음 페이지 ▶