박오이님
무미건조한 개발자
박오이님
전체 방문자
오늘
어제
  • 뭥미 (101)
    • 프로젝트 (8)
      • 자가 보호 (3)
      • 주식 시장 분석 도구 (5)
    • 보안 (7)
      • 개론 (2)
      • 웹 (2)
      • 시스템 (2)
    • 개발 (69)
      • C++ (12)
      • Win32 (7)
      • MFC (2)
      • 자료구조 (8)
      • 알고리즘 (22)
      • 백준 (9)
      • 프로그래머스 (4)
      • LeetCode (0)
      • 개발자 면접 준비 (4)
      • OpenGL (1)
    • 서적 (13)
      • Effective C++ (9)
      • Effective Modern C++ (4)
    • 관심사 (4)
      • 재테크 (4)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • 윈도우개발자
  • 프로세스메모리
  • 에라토스테네스의 체 #알고리즘 #개발 #C #C++ #소수 #소수판별
  • 합집합찾기
  • 윈도우프로그래밍
  • Functional
  • 나동빈 #알고리즘 #동빈나
  • 윈도우
  • 최소간선비용
  • EffectiveC++
  • 동빈나
  • 알고리즘
  • vcpkg
  • 나동빈
  • 안경잡이개발자
  • C++
  • C
  • std
  • CPP
  • 크루스칼알고리즘
  • JSON
  • 시스템프로그래밍
  • 코딩컨벤션
  • jsoncpp
  • 플로이드와샬알고리즘 #최단경로 #백준 #알고리즘 #개발 #C #C++
  • DFS #BFS #알고리즘 #프로그래밍 #코딩테스트 #코딩 #C++ #C
  • 윈도우시스템프로그래밍
  • 백준 #알고리즘 #플로이드와샬 #DFS #BFS #C #C++
  • 에라토스테네스의 체 #C #C++ #개발 #알고리즘 #BFS #DFS #백준 #백준알고리즘
  • 개발

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
박오이님

무미건조한 개발자

개발/MFC

윈도우 사이즈 변경 시, 컨트롤 동적 크기 변경

2019. 1. 6. 23:16

필자는 VIsual studio 2008을 쓰고 있다.


필자는 SDI 기준으로 코딩할 예정이다.

답답해보일 수는 있지만, 그래도 충분히 나한테 도움이 될거라고 생각한다


MFC를 만지면서 내부에 컨트롤 같은건 알아서 크기가 변동할 줄 알았는데 아니였다


그렇게 친절할리가 없었지


말이 길어졌다


윈도우 사이즈 변경 시, 컨트롤 동적 크기 변경에 필요한 샘플코드 부분을 올려준다


먼저 0단계

View클래스에서 속성 -> 메시지 -> WM_SIZE -> OnSize 메소드 추가


void CAgentLogViewer_NewView::OnSize(UINT nType, int cx, int cy)

{

CView::OnSize(nType, cx, cy);


// TODO: 여기에 메시지 처리기 코드를 추가합니다.


}


이 부분이 추가 될 것이다.


1단계 


void CAgentLogViewer_NewView::OnSize(UINT nType, int cx, int cy)

{

CView::OnSize(nType, cx, cy);


if( NULL != m_ListCtrl.GetSafeHwnd() )

{

CRect ListCtrlRect; // 리스트컨트롤박스의 영역

m_ListCtrl.GetWindowRect(ListCtrlRect); // 에디트 박스의 스크린 영역을 구함


// 리스트컨트롤 박스의 스크린 영역을 CAgentLogViewer_NewView 객체의 클라이언트 영역을 기준으로 변경

ScreenToClient(ListCtrlRect);


CRect clientRect;

GetClientRect(clientRect); // CAgentLogViewer_NewView 객체의 클라이언트 영역을 구함


ListCtrlRect.right = clientRect.right - 5;         // 클라이언트 영역의 오른쪽에 5픽셀의 공간을 둔다.

ListCtrlRect.bottom = clientRect.bottom - 5;  // 클라이언트 영역의 하단에 5픽셀의 공간을 둔다.


m_ListCtrl.MoveWindow(ListCtrlRect); // 리스트컨트롤 박스의 수정된 위치를 적용함

}

// TODO: 여기에 메시지 처리기 코드를 추가합니다.

}


조금 더 이 부분에서 클라이언트 부분을 공부할 필요를 느꼈다


'개발 > MFC' 카테고리의 다른 글

드래그 앤 드랍  (0) 2019.01.08
    '개발/MFC' 카테고리의 다른 글
    • 드래그 앤 드랍
    박오이님
    박오이님
    긍정도 아니고 부정도 아닌 0

    티스토리툴바