|
이번엔 소스를 올려봅니다.
메세지를 받을 베이직으로짠 폼은 캡션이 Form1입니다.
첨부파일로 첨부합니다. 참고로 비베가 안깔려있으면 작동되지 않을것입니다.
void __fastcall TFormTest::Edit2KeyPress(TObject *Sender,char &Key)
{
AnsiString test;
HWND hwnd11;
HWND hwnd22;
int a=1;
int i=0;
hwnd11 = FindWindowEx(NULL,NULL,NULL,"Form1"); // 캡션이 Form1인 폼의 핸들값알아오기
hwnd22 = GetDlgItem(hwnd11,a); //받을 폼위의 edit box의 핸들값가져와서 hwnd22에 넣기
SendMessage(hwnd22, WM_IME_CHAR, // edit box에 한글 전송하기
(WORD)((unsigned char)pString[i])<<8 : ((unsigned char)pString[i+1]), 1);
}
소스는 저렇습니다. 문제는
SendMessage(hwnd22, WM_IME_CHAR, // edit box에 한글 전송하기
(WORD)((unsigned char)pString[i])<<8 : ((unsigned char)pString[i+1]), 1);
여기서 pString이 무엇으로 선언되지 않았기에 선언하라고 에러메시지가떠서 char로 해줬더니
이번엔 SendMessage 쪽에서 Invalid Indirection 에러가 뜹니다.
박지훈.임프 님이 쓰신 글 :
: 제가 쓴 팁을 보시면..
: 시프트 연산을 해서 두 바이트를 붙여줘야 하는 이유를 적어놨는데, 그걸 무시하셨군요.
: 그런데 에러가 나신다면 그 에러가 뭔지를 알렺주셔야 답을 할 수 있지 않겠습니까? ^^
:
: 그럼...
:
:
: 야이바 님이 쓰신 글 :
: : C++builder 로 짠 프로그램에서
: : Edit box에다가 한글로 입력하면
: : 다른 폼(비주얼베이직으로 짠것)의 Edit box에다가 뿌려주는 기능을 구현했는데요
: : 문제는
: : 영문이나 숫자는 잘 넘어가는데 한글을 넣으면 ㅁㅁㅁㅁㅁㅁㅁ 라고 뜹니다.
: : WM_IME_CHART라고 해서 넘겨봤는데도 안되더군여.
: :
: : SendMessage(hwnd22, WM_IME_CHAR,
: : (unsigned char)(Key),1);
: :
: : 라고 코딩을 하였지만.
: :
: : 함수이름 자체가
: : void __fastcall TFormTest::Edit2KeyPress(TObject *Sender,char &Key) 입니다
: : 그래서 저기있는 char &Key라는 부분을 unsigned &Key라고 고쳐서 해보니깐
: : 에러가 나더라구여.형식이 틀리다고
: : unsigned 로 보내면 2byte문자를 표현할수있다고해서 (unsigned char)(Key),1); 라고
: : 해줬더니 저걸 타지않더군요.그냥 함수 자체에있는 char &Key를 타고 바로 hwnd22에다가 보내는거 같던데
: : 이거 어떻게 해결해야하나요?
: : 부탁드립니다..
: :
: : 참고로 팁앤 트릭에보면 임프님이 적어두신 강좌가있던데 그렇게하면
: : 에러가 팍팍 뜨더라구요.
: : 아무튼 방법좀 알려주세욤 ㅠ.ㅠ;;
|