SendMessageW 함수(winuser.h)
지정된 메시지를 창이나 창으로 보냅니다. SendMessage 함수는 지정된 창에 대한 창 프로시저를 호출하며 창 프로시저가 메시지를 처리할 때까지 반환되지 않습니다.
메시지를 보내고 즉시 반환하려면 SendMessageCallback 또는 SendNotifyMessage 함수를 사용합니다. 스레드의 메시지 큐에 메시지를 게시하고 즉시 반환하려면
통사론
LRESULT SendMessageW(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
매개 변수
[in] hWnd
형식: HWND
창 프로시저에서 메시지를 받을 창에 대한 핸들입니다. 이 매개 변수가 HWND_BROADCAST((HWND)0xffff 경우 비활성 또는 보이지 않는 창, 겹친 창 및 팝업 창을 포함하여 시스템의 모든 최상위 창으로 메시지가 전송됩니다. 하지만 메시지는 자식 창으로 전송되지 않습니다.
메시지 전송은 UIPI의 적용을 받습니다. 프로세스의 스레드는 무결성 수준이 작거나 같은 프로세스에서 스레드의 메시지 큐에만 메시지를 보낼 수 있습니다.
[in] Msg
형식: UINT
보낼 메시지입니다.
시스템 제공 메시지 목록은 System-Defined 메시지참조하세요.
[in] wParam
형식: WPARAM
추가 메시지 관련 정보입니다.
[in] lParam
형식: LPARAM
추가 메시지 관련 정보입니다.
반환 값
형식: LRESULT
반환 값은 메시지 처리의 결과를 지정합니다. 보낸 메시지에 따라 달라집니다.
발언
메시지가 UIPI에 의해 차단되면 GetLastError함께 검색된 마지막 오류는 5(액세스 거부)로 설정됩니다.
HWND_BROADCAST 사용하여 통신해야 하는 애플리케이션은 RegisterWindowMessage 함수를 사용하여 애플리케이션 간 통신에 대한 고유한 메시지를 가져와야 합니다.
시스템은 시스템 메시지(0에서 (WM_USER-1) 범위의 메시지만 마샬링합니다. 다른 메시지(>= WM_USER)를 다른 프로세스로 보내려면 사용자 지정 마샬링을 수행해야 합니다.
호출 스레드에서 지정된 창을 만든 경우 창 프로시저는 즉시 서브루틴으로 호출됩니다. 지정된 창이 다른 스레드에 의해 만들어진 경우 시스템은 해당 스레드로 전환하고 적절한 창 프로시저를 호출합니다. 스레드 간에 전송된 메시지는 수신 스레드가 메시지 검색 코드를 실행할 때만 처리됩니다. 보내는 스레드는 수신 스레드가 메시지를 처리할 때까지 차단됩니다. 그러나 보내는 스레드는 메시지가 처리될 때까지 기다리는 동안 큐에 추가되지 않은 들어오는 메시지를 처리합니다. 이를 방지하려면 SMTO_BLOCK 집합과 함께 SendMessageTimeout 사용합니다. 큐에 추가되지 않은 메시지에 대한 자세한 내용은 큐에 추가되지 않은 메시지
접근성 애플리케이션은 SendMessage 사용하여 WM_APPCOMMAND 메시지를 셸로 보내 애플리케이션을 시작할 수 있습니다. 이 기능은 다른 유형의 애플리케이션에서 작동하도록 보장되지 않습니다.
예제
예를 들어 키보드 입력표시하는
메모
winuser.h 헤더는 SENDMessage를 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |
API 집합 | ext-ms-win-ntuser-message-l1-1-0(Windows 8에서 도입) |
참고 항목
개념
inSendMessage
메시지 및 메시지 큐
참조
SendDlgItemMessage
SendNotifyMessage