같은 코드가 있다.
ShowWindows(SW_SHOW); 를 다음과 같이 변경
ShowWindows(SW_SHOWMAXIMIZED);
///////////////////////////////////////////////////////////////////////////////////////////////
다이얼로그박스를 최대 설정은 아래 [Source Code 1] 처럼 ShowWindow(SW_MAXIMIZE) 함수 호출하면 된다.
(윈도우에 Maximize Box가 있을 경우....)
[Source Code 1]
다음의 코드를 OnInitDailog() 등의 초기화 함수에 넣어주면 풀스크린으로 시작합니다.
Dialog Base에서는... ShowWindow(SW_SHOWMAXIMIZED); // 화면을 최대화...
SDI에서는... ResizeParentToFit(FALSE);
그러나...
다이얼로그 윈도우의 캡션을 없앴을 경우(Title Bar 속성 해제), Maximize Box 속성 해제을 하고 ShowWindow(SW_MAXIMIZE) 을 하면 작업표시줄(Task Bar)가 가려지는 현상이 일어난다. (결국 TaskBar 못 본다.)
작업표시줄을 그대로 있고, 윈도우만 최대화할 경우 [Source Code 2] 참조...
void CSystemInfoDlg::OnOK()
{
// TODO: Add extra validation here
ShowWindow(SW_MAXIMIZE); // 이것 호출...
//CDialog::OnOK();
}
void CSystemInfoDlg::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
// TODO: Add your message handler code here and/or call default
RECT rc;
SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, 0);
lpMMI->ptMaxSize.x = rc.right;
lpMMI->ptMaxSize.y = rc.bottom;
lpMMI->ptMaxPosition.x = 0;
lpMMI->ptMaxPosition.y = 0;
lpMMI->ptMinTrackSize.x = GetSystemMetrics(SM_CXMINTRACK);
lpMMI->ptMinTrackSize.y = GetSystemMetrics(SM_CYMINTRACK);
lpMMI->ptMaxTrackSize.x = GetSystemMetrics(SM_CXMAXTRACK);
lpMMI->ptMaxTrackSize.y = GetSystemMetrics(SM_CYMINTRACK);
CDialog::OnGetMinMaxInfo(lpMMI);
}
[Source Code 2]와 같이 하면, 최대화 버튼없는 경우, 타이틀이 없는 경우에서 SW_MAXIMIZE 하면, 작업표시줄은 그대로 있고, 해당 윈도우가 최대화 된다.
'C & C++ > MFC 컨트롤' 카테고리의 다른 글
Visual C++,MFC 에서 로그인창 띄우고 메인화면 띄우기 (0) | 2011.11.03 |
---|---|
[MFC] [List] OnItemchanged 한번만 호출되게 (0) | 2011.11.02 |
모달리스 대화상자 작업표시줄에 표시하기 (0) | 2011.10.31 |
트리 컨트롤에 팝업메뉴 추가하기 (0) | 2011.10.31 |
창의 최소화/최대화 크기 제한 (0) | 2011.10.31 |
댓글