WM_DEVMODECHANGE
에 대해 A
/W
개의 변형이 없지만 LPARAM
의 문자열을 사용한다는 것을 알고 있습니다. 이 문자열이 좁거나 넓은지를 알려주는 문서는 찾을 수 없습니다.장치 이름이 WM_DEVMODECHANGE의 너비 또는 너비가 넓습니까?
누가 LPARAM
에 적합한 지 알고 있습니까?
WM_DEVMODECHANGE
에 대해 A
/W
개의 변형이 없지만 LPARAM
의 문자열을 사용한다는 것을 알고 있습니다. 이 문자열이 좁거나 넓은지를 알려주는 문서는 찾을 수 없습니다.장치 이름이 WM_DEVMODECHANGE의 너비 또는 너비가 넓습니까?
누가 LPARAM
에 적합한 지 알고 있습니까?
귀하의 의견에서 한스의 답변까지 귀하는 메시지를 보내고 있습니다. 이 메시지는 일반적으로 SendMessageTimeout
과 함께 전송됩니다. 이제 SendMessageTimeout
에는 SendMessageTimeoutW
과 SendMessageTimeoutA
의 두 가지 버전이 있습니다. SendMessageTimeoutW
을 호출하면 유니 코드 텍스트를 제공해야하며 SendMessageTimeoutA
으로 전화하면 ANSI 텍스트를 제공합니다.
따라서 두 가지 메시지 식별자를 사용하여 데이터 형식을 구분하지 않고 데이터를 보내는 데 사용되는 기능을 기반으로합니다. 그래서 SendMessageW
/SendMessageA
, PostMessageW
/PostMessageA
및 사용시
정확히 동일하게 적용된다.
SendMessageTimeoutW
을 호출하면 HWND_BROADCAST
을 사용하면 ANSI 및 유니 코드 창에 메시지가 수신 될 것으로 예상 할 수 있습니다. 메시징 시스템은 보낸 데이터가 메시지를 수신하는 창에 적합한 인코딩으로 변환되도록합니다.
WM_DEVMODECHANGE
은 숫자이며 하나만 있습니다. 너비가 좁거나 넓은 문자열을 가져올 지 여부는 창이 유니 코드인지 여부에 따라 결정됩니다. CreateWindowExA 또는 CreateWindowExW()를 사용하여 작성한 방법에 따라 결정됩니다. 그리고 나중에 IsWindowUnicode()로 찾을 수 있습니다.
이 경우이 메시지를 보내드립니다. 그래서 내 창에 등록 된 형식으로 문자열을 보낼거야 ... – Mordachai
음, 기다려. 직접 생성 할 때는 일반적으로 브로드 캐스트하고 SendMessageTimeout()을 사용합니다. –
감사합니다. SendMessageTimeout에서 A/W를 확인 했어야합니다. D' oh! :) – Mordachai