Windows7 에서 ImmGetContext(handle(gv_win)) 이 정상적으로 작동 안될때
FUNCTION long ImmGetContext(long hwnd) LIBRARY "imm32.dll" alias for "ImmGetContext;Ansi"
FUNCTION long ImmSetConversionStatus(Long himc,long dw1,long dw2) LIBRARY "imm32.dll" alias for "ImmSetConversionStatus;Ansi"
long himc
himc = ImmGetContext(handle(gv_win))
ImmSetConversionStatus(himc,1,0)
return 0
를 이용해서 한글 변환을 할때가 있는데 XP에서는 정상적으로 잘되는데 Windows7 에서는
안될 때가 있습니다.
되긴되는데 최초 1회 안먹고 그다음부터는 되더라고요.
예를 들어 거래처 조회하는 조회항목 sle_customcd 오브젝트에 처음 getfocus에 이벤트를 주어도
첫번째 포커스를 먹었을 때는 영문으로 나오고 그다움부터 포커스를 먹으면 한글로 나오더라고요..
아무튼 이럴때 여기를 확인해보세요.
제어판 - 시계 언어 및 국가별 옵션 - 키보드 또는 기타 입력 방법 변경 - 키보드 및 언어 - 키보드 변경 을 눌러서 설정으로 들어가서 보면...
위 창에서 키보드 변경을 누르세요
다음과 같은 창이나오는데
마이크로 Office ime 로 설정되어 있는걸 볼수 있습니다. 이런경우 정상적으로
ImmGetContext(handle(gv_win)) 처리 되지 않네요.
오른 쪽에 추가를 눌러서
Microsoft 입력기도 추가해주세요.
Microsofit 입력기로 설정하고
ImmGetContext(handle(gv_win)) 함수를 태워보면 정상작동하는 걸 볼수 있습니다.
Microsoft office ime 와 Microsoft ime 의 차이점은 잘 모르겠습니다.
좋은 방법 있으시다면, 의견 바랍니다.
ggjeong 직접작성 2012.4.30