반응형
1. 윈도우의 가장 기본 틀이 되는 CMainFram 에서 정해 준다.
CMainFram 클래스 중에서도 PreCreateWindow() 함수에서 작업해 준다.
PreCreateWindow() : 윈도우가 생성되기 전 호출되는 함수
- Parameter cs 에는 생성되는 윈도우의 정보를 담고 있는 구조체 이다.
- cs 구조체 멤버 중에서 cx, cy 는 각각 메인 윈도우 가로, 세로 길이를 나타낸다.
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.cx = 1000; /*< 메인 윈도우의 가로 길이 */
cs.cy = 700; /*< 메인 윈도우의 세로 길이 */
return TRUE;
}
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.cx = 1000; /*< 메인 윈도우의 가로 길이 */
cs.cy = 700; /*< 메인 윈도우의 세로 길이 */
return TRUE;
}
2. CWinApp 의 파생 클래스에서 윈도우 크기 조정
MFC 응용프로그램은 CWinApp 클래스을 기반 클래스로 고유의 파생 클래스를 만든다.
InitInstance() 함수는 응용프로그램 관련 윈도우 생성 및 초기화 작업을 한다.
m_pMainWnd 변수의 SetWindowPos() 함수로 윈도우 크기를 조정해 줄수도 있다.
- CMainFrame 에서 윈도우 크기를 정하는 것과 차이점
생성되는 윈도우의 크기는 CMainFrame 에서 PreCreateWindow() 함수 안에서 결정 된다.
생성된 윈도우를 SetWindowsPos() 함수를 이용해서 지정해준 값 만큼 크기를 조정해서 보여는 것이다.
SetWindowPos() 함수의 두번째, 세번째 인수는 출력 윈도우의 위치이고,
네번째, 다섯번째 인수는 각각 x축, y축 으로의 길이 이다.
m_pMainWnd->SetWindowPos(NULL, 10, 10, 600, 600, 0);
※ 원래 윈도우의 크기를 줄여서 보여주는 것이기 때문에 스크롤이 생긴다.
3. 윈도우 크기 고정
CMainFrame 클래스에서 PreCreateWindow() 함수가 기본적으로 설정 하는 윈도우 스타일은
cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE | WS_THICKFRAME
| WS_SYSMENU | WS_MINIMIZEBOX | WS_MINIMIZEBOX | WS_MAXIMIZE;
여기서 WS_THICKFRAME 스타일을 제거하면 처음 생긴 윈도우의 크기를 조절할 수 없다. 즉, 크기 고정
cs.style &= ~WS_THICKFRAME;
반응형
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
[icon] Picture Ctrl 에 아이콘 출력 (0) | 2011.04.27 |
---|---|
[Tip] 툴바 이미지 변경 (0) | 2011.04.27 |
[Dialog] 윈도우 최대 및 최소 크기 설정 (0) | 2011.04.27 |
[Combo] 콤보박스 클릭 없이 콤보박스 목록 열기 (0) | 2011.04.27 |
[Widget] 시계 (0) | 2011.04.26 |
댓글