타이틀바에 제목없음 제거하기
(일반적으로 프로그램을 실행하면 아래와 같이 제목없음이 나온다.)
BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs )
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.style ^= FWS_ADDTOTITLE;
return TRUE;
}
실행 시 창의 크기 조절
다음과 같이 cs.cx, cs.cy 값을 변경해 준다.
BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs )
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.cx = 795; // 가로 크기
cs.cy = 655; // 세로 크기
return TRUE;
}
실행 시 프로그램의 화면 좌표 지정
다음과 같이 cs.x, cs.y값을 변경해 준다.
BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs )
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.x = 100; // 가로 시작 위치
cs.y = 100; // 세로 시작 위치
return TRUE;
}
메뉴제거
다음과 같이 cs.hMenu 값을 NULL로 설정한다.
BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs )
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.hMenu = NULL;
return TRUE;
}
또는 다음과 같이 InitInstance에서 SetMenu()를 추가해 준다.
SDI인 경우
BOOL CTestApp::InitInstance()
{
...
m_pMainWnd->SetMenu( NULL );
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
MDI인 경우
BOOL CTestApp::InitInstance()
{
...
pDocTemplate->m_hMenuShared = NULL;
pMainFrame->SetMenu( NULL );
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
return TRUE;
}
시작 시 창 최대화시키기
다음과 같이 InitInstance의 ShowWindow()에서 변경해 준다.
BOOL CTestApp::InitInstance()
{
...
m_pMainWnd->ShowWindow( SW_MAXIMIZE );
m_pMainWnd->UpdateWindow();
return TRUE;
}
프로그램을 항상 최상위 윈도우로 만들기
다음과 같이 다음과 같이 cs.dwExStyle 값을 변경해 준다.
BOOL CMainFrame::PreCreateWindow( CREATESTRUCT& cs )
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.dwExStyle |= WS_EX_TOPMOST; // 항상 위
return TRUE;
}
파일을 Drag & Drop으로 파일 개방하기
다음과 같이 InitInstance에 DragAcceptFiles()를 추가한다.
BOOL CTestApp::InitInstance()
{
...
pMainFrame->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
m_pMainWnd->DragAcceptFiles();
return TRUE;
}
창의 최대화 크기 변경
창의 최대화 버튼을 눌렀을 때 크기를 지정한다.
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
lpMMI->ptMaxSize.x = 500; // 최대화 가로 크기
lpMMI->ptMaxSize.y = 500; // 쵀대화 세로 크기
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
창의 최소화/최대화 크기 제한
창의 최대화 버튼을 눌렀을 때 크기를 지정한다.
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
lpMMI->ptMinTrackSize.x = 300; // 최소화 크기를 300으로 제한
lpMMI->ptMinTrackSize.y = 300; // 쵀소화 크기를 300으로 제한
lpMMI->ptMaxTrackSize.x = 600; // 최대화 크기를 600으로 제한
lpMMI->ptMaxTrackSize.y = 600; // 쵀대화 크기를 600으로 제한
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
김은철(eunchol71) |
'MFC' 카테고리의 다른 글
클래스 맴버함수를 콜백함수로 사용하기 [2/3] (1) | 2008.09.01 |
---|---|
클래스 멤버함수를 윈도우 프로시저로 사용하기 [1/3] (1) | 2008.09.01 |
MFC 메인 윈도우의 생성 흐름 (1) | 2008.09.01 |
Creating New Documents, Windows, and Views (0) | 2008.09.01 |
CWnd::Create 과정.... (1) | 2008.09.01 |
MFC HandlingWindowMessages (1) | 2008.09.01 |
MFC Module State Implementation (0) | 2008.09.01 |