C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[9716] Re:[참고] 질문하신 내용의 궁극적인 해답은 아닙니다.
유부남 [] 1131 읽음    2001-08-09 12:38
안녕하세요. 질문하신 내용의 궁극적인 해답은 아닙니다.
다만, Invalid Indirection 오류 메세지는
아래 와 같은 오류가 있어 발생하는 것 같습니다.

[질문 중 일부]
:    SendMessage(Edit1->Handle, WM_IME_CHAR,
:      (WORD)((unsigned char)Key[1])<<8 | ((unsigned char)Key[2]), 1);
: 컴파일해보니 Key[1]부분에서 Invalid Indirection이라는 에러메시지가 뜹니다.
: 이런 경우 어떻게 수정을 해야 할 지 궁금해요....

위 내용중 Key[1], Key[2]는 잘못된 표현인것같습니다.
Key는 단순 워드형변수로 배열형식의 표현은 적절치 못한것 같습니다.
굳이 2바이트를 1바이트씩 잘라서 값을 얻으시려면 공용체를 쓰시던지,
번지연산자로 메모리 번지를 참조해서 얻을 수 있습니다.

SendMessage(Edit2->Handle, WM_IME_CHAR,
      (WORD)((unsigned char)*(&Key+1)<<8) | ((unsigned char)*(&Key)), 1);

즉  &Key는 2바이트 중 첫번째 바이트의 번지 *(&Key)는 그번지에 저장된 값.
    &Key+1 2바이트 중 두번째 바이트의 번지 *(&Key+1)은 그번지에 저장된 값.

그리고 팁란에 있는 아래 내용 중 pString은 어딘가
char pString[100];
또는
char *pString = "문자열";
과 비슷하게 선언되어 있을 거고요.

SendMessage(RichEdit1->Handle, WM_IME_CHAR,
     (WORD)((unsigned char)pString[i])<<8 : ((unsigned char)pString[i+1]), 1);

그럼 참고하시길...

Jun 님이 쓰신 글 :
: 안녕하세요...
: tip에 있는 한글을 메세지로 보내기를 보고 적용을 해 보았는데요...
: 제가 하고자 하는 작업은 edit가 하나 있고 richedit가 있고 richedit의 readonly는 true상태로 설정해 놓았을 때 richedit에서 키보드를 입력하면 그 글자가 edit로 찍히도록 하고자 합니다...
: 그래서 아래와 같이 처리를 해주었습니다...( tip을 보기 전에는..)
:
: richedit의 keypress이벤트에서
:
:    AnsiString now_key = AnsiString(Key);
:    Edit1->Text = now_key;
:    Edit1->SetFocus();
:    Edit1->SelLength = 0;
:    Edit1->SelStart = 1;
:
: tip을 보고 적용해보았는데요..
:
:    Edit1->Clear();
:
:    SendMessage(Edit1->Handle, WM_IME_CHAR,
:      (WORD)((unsigned char)Key[1])<<8 | ((unsigned char)Key[2]), 1);
:
:     Edit1->SetFocus();
:     Edit1->SelLength = 0;
:     Edit1->SelStart = 1;
:
: 컴파일해보니 Key[1]부분에서 Invalid Indirection이라는 에러메시지가 뜹니다.
: 이런 경우 어떻게 수정을 해야 할 지 궁금해요....
:
:    SendMessage(Edit1->Handle, WM_CHAR,
:      (WORD)(Key),1);
: 로 해주면 영문은 들어가는데 한글을 안 들어가구요.....
:
: 답변 부탁드리겠습니다..
:

+ -

관련 글 리스트
9681 [질문] 한글을 받아서 메세지로 보내기(tip내용에서..) Jun 935 2001/08/08
9716     Re:[참고] 질문하신 내용의 궁극적인 해답은 아닙니다. 유부남 1131 2001/08/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.