2013-06-18 6 views
0

AfxMessageBox를 사용하여 메시지 상자를 표시하는 MFC 응용 프로그램이 있습니다. 응용 프로그램 자체를 사용하면 최종 사용자가 사용자 인터페이스 언어를 변경할 수 있습니다. 내부에서 LCID (또는 FindResourceEx API)를 사용하여 리소스를로드하면 내 문제가 발생합니다. 내 문제는 AfxMessageBox에서 확인, 취소 단추 등의 언어를 변경하기 위해 LCID를 사용하도록 만들 수없는 것입니다.이 또한 파일 및 폴더에 영향을줍니다 대화 상자 창을 엽니 다.AfxMessageBox에서 언어를 변경하려면 어떻게해야합니까?

아이디어가 있습니까?

추신. 이 방법은 Windows XP 이상에서 작동해야합니다.

답변

2

에 따르면 this SO article에 따르면 표준 기능이 없습니다. DLL에 대한 소스 코드가 포함 된 CodeProject 문서 "Localizing System MessageBox"에 대한 링크가 있습니다 (C#에서는 있지만 C++로 다시 작성할 수있을만큼 간단합니다). Windows Hook MessageBox 버튼에 자신 만의 텍스트를 제공 할 수 있습니다. 같은 글의 토론 부분에 sizing buttons to the text에 대한 제안이 있습니다.

+0

+1 자신의 메시지 상자를 생성하지 않는 기사에 연결하는 경우. 그 (메시지 상자)를 싫어하십시오! Microsoft 게으름과 OS에 알맞은 현지화 기능을 제공 할 수 없다는 점을 고려해야합니다. 한 후속 질문 - MFC 코드 자체를 바꿀 수있는 방법을 문서에 설명 된 후크 계정으로? 정적으로 MFC에 링크됩니다. – c00000fd

+0

예, CWinApp :: InitInstance()에서'Register()'를 호출하고'CWinApp :: ExitInstance()'에서'Unregister()'를 호출하는 코드를 추가 할 수 있습니다. 그러나 CWinApp로부터 새로운 클래스를 파생시키고,이 클래스에 당신의 코드를 놓고, 당신이 MFC 업데이트와 버전의 영향을받지 않도록하는 것이 좋습니다. –

+0

MFC가 업데이트 되었습니까? 농담하는거야? 그것은 꽤 많이 물 속에서 죽었다. :) – c00000fd

관련 문제