Program Language/API | MFC

[MFC] 다이얼로그 캡션 변경

야곰야곰+책벌레 2021. 5. 20. 17:08
728x90
반응형

MFC에서 윈도우 창의 캡션을 변경하려면, 첫 번째로는 CMainFrame::PreCreateWindow에서 CREATESTRUCT를 변경하는 방법이 있다.

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;

	cs.style &= ~(FWS_ADDTOTITLE); // 캡션이 파일 읽어오기 등으로 바뀌지 않도록 변경
	cs.lpszName = _T("MY APPLICATION"); // 원하는 캡션 작성

	return TRUE;
}

두 번째는 그냥 CMainFrame에서 SetWindowText(캡션명)을 호출하면 된다. CMainFrame이 아니라 다른 곳에서 변경하고 싶다면 아래와 같이 하면 된다.

CMainFrame* pFrame = (CMainFrame *)AfxGetMainWnd(); // CMainFrame의 포인터를 받아와서
pFrame->SetWindowText(L"MY APPLICATION"); // 캡션명을 변경한다.

MDI에서 자식윈도우의 캡션을 변경하고 싶다면, CMainFrame 대신에 CChildFrame에서 하면 된다.

CMainFrame* pMain = (CMainFrame*)AfxGetApp()->m_pMainWnd;
CChildFrame* pWnd = (CChildFrame*)pMain->MDIGetActive();
pWnd->SetWindowText(L"MY APPLICATION"); // 캡션명을 변경한다.

 

728x90
반응형