윈도우 창 리사이즈를 정리해보자 ~!
http://snipplr.com/view/14659/mfc-resize-control-in-cdialog-app/


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
    // This OnSize function resizes one large control in a dialog.
    // The one control grows horizontally and vertically to fill the dialog. It's position remains unchanged.
    // Other controls (buttons etc) would typically be above the one resizable control.
    // How to add OnSize:
    // [1] add to .h: afx_msg void OnSize(UINT nType, int cx, int cy);
    // [2] add to message map in .cpp: ON_WM_SIZE()
    // [3] add this OnSize function.
    
    //http://wwwusers.brookes.ac.uk/p0071643/resize.htm

    void CMyDlg::OnSize(UINT nType, int cx, int cy)
    {
      CDialog::OnSize( nType, cx, cy);
       // 리사이즈 할 컨트롤의 포인터 선언
       CWnd* pCtl = GetDlgItem(IDC_MSFLEXGRID1);
     
          if (!pCtl) { return; }                      // 컨트롤이 있는지 확인
     
       CRect rectCtl;                              //CRect 를 사용해서 포지션을 할당
       pCtl->GetWindowRect(&rectCtl);   // 컨트롤의 위치 얻기
       ScreenToClient(&rectCtl);            //스크린 좌표로 부터의 다이얼로그에 대한 좌표로 변환

       // SetWindowPos 를 호출해서 동적으로 컨트롤의 위치를 리사이즈 한다.
       // rectCtl.left is assumed to be the left, bottom and right margin for the control.
       //rectCtrl.left 는 왼쪽이며 bottom 과 right 는 컨트롤의 여백이다.
       //x값 : 절대위치, y값 :절대위 ,w. 수평으로 늘릴때 늘어난 가로,수직으로 늘릴때 늘어난 세로
       pCtl->SetWindowPos(NULL,rectCtl.left, rectCtl.top,
                                       cx- 2 * rectCtl.left, cy- rectCtl.top - rectCtl.left, SWP_NOZORDER);
  
    



저작자 표시
신고

'MFC > Basic' 카테고리의 다른 글

창 리사이즈 코드  (0) 2014.10.31
[MFC] RPC 서버 해결 방법  (2) 2014.10.21
Path관련 함수 정리 및 탐색기 예제 소스  (2) 2013.10.17

WRITTEN BY
Profile
비타오백
Enjoy your stage!

받은 트랙백이 없고 , 댓글이 없습니다.
secret