2017-10-18 3 views
0

상수 WM_IME_COMPOSITIONWM_IME_KEYLAST은 모두 동일한 값 0x010F을가집니다. 이 창 메시지 중 하나를 수신 한 Windows 프로그램이 수신 한 메시지를 알지 못하는 것 같습니다. 그렇다면이 메시지를 처리하는 코드는 어떻게 작성합니까?어떻게 상수 WM_IME_COMPOSITION과 WM_IME_KEYLAST가 동일한 값을 가질 수 있습니까

호기심에서 묻습니다. WM_IME_COMPOSITIONWM_IME_KEYLAST을 처리 할 필요가 없습니다. 일부 문서를보고 단순히 이해할 수없는 이상한 점을 발견했습니다.

답변

1

WM_IME_KEYLAST은 메시지 식별자가 아닙니다. 메시지 범위 의 끝인 WM_IME_*의 끝을 상징하는 상수입니다. 이 패턴은 Windows SDK 전체에서 볼 수 있습니다 (예 : 키 메시지와 관련된 값 범위를 설명하는 WM_KEYFIRSTWM_KEYLAST 기호가 있습니다.

질문에 대답하려면 : WM_IME_KEYLAST을 처리하지 않으므로 모호성이 없습니다. 예를 들어, 다양한 메시지를 처리하려는 표현식에서 사용할 수 있습니다.


1해당하는 WM_IME_KEYFIRST 기호가 없기 때문에이 특정 경우에 나는 완전히 확실하지 않다하지만

. WM_IME_KEYLAST은 사용되지 않는 메시지 값이 새로운 WM_IME_COMPOSITION 메시지에 대해 재사용되는 오래된 이름 일 수 있습니다. 배송 된 후에는 돌아가서 기호를 제거 할 수 없으므로 아직 남아 있지만 더 이상 목적을 달성하지 못합니다.