Win32 , C++

ATL Composite Control 에서 Edit 컨트롤 글자 깨지는 문제 해결 방법

김모작자 2006. 8. 4. 19:11
선언부에
       // editbox
       CContainedWindow        m_EditCtrl;

추가
생성자에 추가로
       :m_EditCtrl(_T("EDIT"), this, 1)
해서 초기화 하고

ALT_MSG_MAP(1)
  WM_IME_CHAR 추가
여기서 1은 위에 1과 같은 번호이다

나머지 코드는...
LRESULT CMyCompositeControl::OnEditImeChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
       static char kk[3];

       kk[0] = (char) (wParam & 0xff);
       kk[1] = (char) (wParam >> 8);
       m_EditCtrl.SendMessage(EM_SETSEL, 0, -1);
       m_EditCtrl.SendMessage(EM_SETSEL, -1, 0);
       m_EditCtrl.SendMessage(EM_REPLACESEL, FALSE, (LPARAM) kk);
       bHandled = TRUE;
       return 0;
}