AfxMessageBox 에서 사용하는 nType은 기본적으로 os의 language에 따른다고 한다. 따라서
아무리 로컬라이즈 했다고 하더라도 해당 부분에서 뜬근없이 한글이 나타나는 경우가..;;
많이 사용하는 것이라 간단하게 해결될 수 있을것이라 생각했는데 클래스를 새로 만들어서 서
브클래싱하라니... 난 그저 yes, no 라고만 해주면 된다고!!
다행이 naver 에 어떤 분이 쉽게 wrapping 해서 사용하는 방법을 올려 주셨다.
원문 : http://dontcryme.blog.me/30033326734
HHOOK gDovHook; LRESULT CALLBACK dovProc(int nCode, WPARAM wParam, LPARAM lParam); int dovMessageBox(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption,UINT nType) { gDovHook = SetWindowsHookEx(WH_CBT,&dovProc,0,GetCurrentThreadId()); return ::MessageBox(hWnd, lpText, lpCaption, nType); } LRESULT CALLBACK dovProc(int nCode, WPARAM wParam, LPARAM lParam) { HWND hChildWnd; CString msg = TEXT(""); if ( nCode == HCBT_ACTIVATE ) { hChildWnd = (HWND)wParam; if ( GetDlgItem(hChildWnd,IDYES)!=NULL ) { msg = IDS_BUTTON_YES; SetDlgItemText(hChildWnd,IDYES,msg); } if ( GetDlgItem(hChildWnd,IDNO)!=NULL ) { msg = IDS_BUTTON_NO; SetDlgItemText(hChildWnd,IDYES,msg); } UnhookWindowsHookEx(gDovHook); } return 0; } // 호출 예 dovMessageBox(AfxGetMainWnd()->m_hWnd, IDS_TEST_MSG, _T("MessageBox Text"), MB_YESNO);
블로거 님께 진심으로 감사;