한국어 OS에서 만든 대화상자는 영어 OS에서 완전히 망가져 보인다.
이를 해결하기 위한 방법중 템플릿을 이용한 방법이 있다.
1. 리소스에디터에서 대화상자의 Language 속성을 "기본 언어 처리"로 변경한다.
2. 아래 코드를 추가한다.
#include <afxpriv.h>
3. 대화상자에 DoModal() 함수를 오버라이드하고 아래와 같이 추가한다.
붉은색 부분은 클래스 이름을 써주고 파란색부분에는 폰트 이름과 사이즈를 넣어준다.
INT_PTR CDlgSplash::DoModal()
{
CDialogTemplate dlt;
int nResult;
if(!dlt.Load(MAKEINTRESOURCE(CDlgSplash::IDD)))
return -1;
dlt.SetFont(theApp.m_Reg.GetFontFace(), (WORD) theApp.m_Reg.GetFontSize());
LPSTR pdata = (LPSTR)GlobalLock(dlt.m_hTemplate);
m_lpszTemplateName = NULL;
InitModalIndirect(pdata);
nResult = CDialog::DoModal();
GlobalUnlock(dlt.m_hTemplate);
return nResult;
}
댓글 없음:
댓글 쓰기