• 카테고리
    • 전체 글

    • 카테고리1
    • 카테고리2
    • 카테고리3
    • 카테고리4
  • 태그
  • 방명록

컨트롤에서 한글 사용하면 깨지는 문제.

기술자료/CPP 2003. 7. 9. 18:26
NT류 윈도우에서는 unicode로 하지 않으면 이상하게 edit control에 한글이

입력시마다 깨져서 나오져.. 근데 우낀건 paste로 한글을 쓰면 써지더군요..

그걸 window98에 가서 해보면 잘되져.. 근데 모두 98만 쓰는것두 아니고

그렇다고 unicode로 하자니 98에서 안되고...

어디가도 해결법을 찾을수 없어서 고민고민하다가 이상한 방식으로 해결했습니다.

뭐 근본적인 문제는 뭔지 알수 없지만...

방법은 edit control을 서브클래싱해서 WM_IME_CHAR메세지를 처리해 줍니다.

LRESULT OnImeChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
  static char kk[3];
        
  kk[0] = (char) (wParam >> 8);
  if(kk[0]==0x00)
  {
     bHandled=FALSE;
     return 0;
  }
  kk[1] = (char) wParam & 0xff;
  SendDlgItemMessage(IDC_MYEDIT, EM_SETSEL, 0, -1);
  SendDlgItemMessage(IDC_MYEDIT, EM_SETSEL, -1, 0);
  SendDlgItemMessage(IDC_MYEDIT, EM_REPLACESEL, FALSE, (LPARAM) kk);

  return 0;
}

그럼 됩니다. ㅋㅋ

참고로 ATL에서 서브클래싱하는것도 히한하죠..

생성자에서..

CContainedWindow m_EditCtrl;

CMyClass() : m_EditCtrl(_T("EDIT"), this, 1)
{
  m_bWindowOnly = TRUE;
  m_Total=0;
  CalcExtent(m_sizeExtent);
  m_sClient=0;
}

메세지맵에서..

BEGIN_MSG_MAP(CMyClass)
  CHAIN_MSG_MAP(CComCompositeControl<CMyClass>)
  MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
  ...
ALT_MSG_MAP(1)
  MESSAGE_HANDLER(WM_IME_CHAR, OnImeChar)
BEGIN_MSG_MAP(CMyClass)

...

LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
   m_EditCtrl.SubclassWindow(GetDlgItem(IDC_MYEDIT));
....


제가 별로 아는게 없어서 되는대로 했는데

더 괞찮게 하는 방법이 있으면 답변달아주세여........

tab    tab되나????
728x90
블로그 이미지

하인도1

[하인드/하인도/인도짱 의 홈페이지] 저만의 공간입니다. 다양한 소재들을 나열하는 아주 단순 무식한 홈페이지 입니다. 다양한 문서 자료도 있겠지만, 저의 푸념들도 있답니다.

250x250

블로그 내에 소스 코드 삽입 이사온 기념 스킨도... RSS 전문 기능 비활성화 관련. 스킨 바꾸어 보았습니다. 서버 파일 정리 좀 했습니다.

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

불만 moss windows Buscuit 비스킷 Tutorial 블로그 수 Visual Studio 인터파크 java 좀 Azure 지름신 me2sms Google Apps Engine 오류 협업 me2dayzm 것 e-book twi2me 개발환경 2010 me2photo SharePoint 매뉴얼 WSS 친구 MOSS 2007

  • Total :
  • Today :
  • Yesterday :

Copyright © 2015-2025 Socialdev. All Rights Reserved.

Copyright © 2015-2025 Socialdev. All Rights Reserved.

티스토리툴바