본문 바로가기
Engineering

[MFC] GetWindowPlacement(WINDOWPLACEMENT* lpwndpl)

by 투썬 아빠 2009. 8. 8.





MFC를 이용한 프로그램을 개발하다보면 Form에 다양한 컨트롤들을 붙여서 개발하게된다.

이 때 각 컨트롤들의 정보를 얻기위해서 GetDlgItem(int nID)함수를 사용한다.
정보를 얻은 후 GetClientRect(LPRECT lpRect) 함수를 이용하면 해당 컨트롤의 Rect정보를 얻을수 있게된다.
GetClientRect(LPRECT lpRect)로 얻을 수 있는 정보는 Rect에 국한된다.

즉! 크기정보는 얻을 수 있지만 해당 컨트롤이 Form(혹은 Dialog)의 어디에 위치(좌표)하고 있는지는 알 수 없다.
이럴 때 쓰는 함수가 GetWindowPlacement(WINDOWPLACEMENT* lpwndpl)이다.



간단히 쓰는 법을 알아보자~!

먼저 해당 컨트롤의 정보를 GetDlgItem함수로 CWnd변수에 얻어 온다.
그 다음 WINDOWPLACEMENT 변수를 생성한다음 GetWindowPlacement함수로  컨트롤의 위치 정보를 가지면 된다.

소스를 통해서 보도록 하자


간단히 구현하기 위해 MFC의 다이얼로그 기반으로 프로젝트를 생성하였고,
OnInitialDialog함수에 소스를 작성하였다.
m_iStatic변수들은 헤더 파일에 멤버변수로 생성하였다.



실행 시키면 위의 그림과 같이 나온다~

댓글