메시지 및 메시지 큐

이 섹션에서는 메시지 및 메시지 큐와 애플리케이션에서 메시지 큐를 사용하는 방법을 설명합니다.

섹션 내용

속성 설명
메시지 및 메시지 큐 정보 이 섹션에서는 Windows 메시지 및 메시지 큐에 대해 설명합니다.
메시지 및 메시지 큐 사용 다음 코드 예제에서는 Windows 메시지 및 메시지 큐와 연결된 다음 작업을 수행하는 방법을 보여 줍니다.
메시지 참조 API 참조를 포함합니다.

System-Provided 메시지

시스템 제공 메시지 목록은 시스템 정의 메시지를 참조하세요.

메시지 함수

속성 설명
BroadcastSystemMessage 지정된 받는 사람에게 메시지를 보냅니다. 수신자는 애플리케이션, 설치 가능한 드라이버, 네트워크 드라이버, 시스템 수준 디바이스 드라이버 또는 이러한 시스템 구성 요소의 조합일 수 있습니다.
요청이 정의된 경우 추가 정보를 받으려면 BroadcastSystemMessageEx 함수를 사용합니다.
BroadcastSystemMessageEx 지정된 받는 사람에게 메시지를 보냅니다. 수신자는 애플리케이션, 설치 가능한 드라이버, 네트워크 드라이버, 시스템 수준 디바이스 드라이버 또는 이러한 시스템 구성 요소의 조합일 수 있습니다.
이 함수는 받는 사람으로부터 더 많은 정보를 반환할 수 있다는 점을 제외하고 BroadcastSystemMessage 와 유사합니다.
DispatchMessage 창 프로시저에 메시지를 디스패치합니다. 일반적으로 GetMessage 함수에서 검색한 메시지를 디스패치하는 데 사용됩니다.
GetInputState 호출 스레드의 메시지 큐에 마우스 단추 또는 키보드 메시지가 있는지 여부를 결정합니다.
GetMessage 호출 스레드의 메시지 큐에서 메시지를 검색합니다. 함수는 게시된 메시지를 검색할 수 있게 될 때까지 들어오는 보낸 메시지를 디스패치합니다.
GetMessage와 달리 PeekMessage 함수는 반환하기 전에 메시지가 게시될 때까지 기다리지 않습니다.
GetMessageExtraInfo 현재 스레드에 대한 추가 메시지 정보를 검색합니다. 추가 메시지 정보는 현재 스레드의 메시지 큐와 연결된 애플리케이션 또는 드라이버 정의 값입니다.
GetMessagePos GetMessage 함수에서 검색한 마지막 메시지의 커서 위치를 검색합니다.
커서의 현재 위치를 확인하려면 GetCursorPos 함수를 사용합니다.
GetMessageTime GetMessage 함수에서 검색한 마지막 메시지의 메시지 시간을 검색합니다. 시간은 시스템이 시작된 시간부터 메시지가 만들어진 시간(즉, 스레드의 메시지 큐에 배치됨)까지 경과된 시간(밀리초)을 지정하는 긴 정수입니다.
GetQueueStatus 호출 스레드의 메시지 큐에 있는 메시지 유형을 나타냅니다.
InSendMessage 현재 창 프로시저가 SendMessage 함수를 호출하여 다른 스레드(동일한 프로세스 또는 다른 프로세스)에서 보낸 메시지를 처리하고 있는지 여부를 확인합니다.
메시지를 보낸 방법에 대한 추가 정보를 얻으려면 InSendMessageEx 함수를 사용합니다.
InSendMessageEx 현재 창 프로시저가 다른 스레드(동일한 프로세스 또는 다른 프로세스)에서 보낸 메시지를 처리하고 있는지 여부를 확인합니다.
PeekMessage 들어오는 보낸 메시지를 디스패치하고, 스레드 메시지 큐에서 게시된 메시지를 확인하고, 메시지를 검색합니다(있는 경우).
PostMessage 지정된 창을 만든 스레드와 연결된 메시지 큐에 메시지를 게시하고 스레드가 메시지를 처리할 때까지 기다리지 않고 를 반환합니다.
스레드와 연결된 메시지 큐에 메시지를 게시하려면 PostThreadMessage 함수를 사용합니다.
PostQuitMessage 스레드가 종료(종료)를 요청했음을 시스템에 나타냅니다. 일반적으로 WM_DESTROY 메시지에 대한 응답으로 사용됩니다.
PostThreadMessage 지정된 스레드의 메시지 큐에 메시지를 게시합니다. 스레드가 메시지를 처리할 때까지 기다리지 않고 반환됩니다.
RegisterWindowMessage 시스템 전체에서 고유하도록 보장되는 새 창 메시지를 정의합니다. 메시지 값은 메시지를 보내거나 게시할 때 사용할 수 있습니다.
ReplyMessage SendMessage라는 함수에 대한 컨트롤을 반환하지 않고 SendMessage 함수를 통해 보낸 메시지에 회신합니다.
SendAsyncProc SendMessageCallback 함수와 함께 사용되는 애플리케이션 정의 콜백 함수입니다. 시스템은 대상 창 프로시저에 메시지를 전달한 후 콜백 함수에 메시지를 전달합니다. SENDASYNCPROC 형식은 이 콜백 함수에 대한 포인터를 정의합니다. SendAsyncProc 은 애플리케이션 정의 함수 이름의 자리 표시자입니다.
SendMessage 지정된 메시지를 창 또는 창으로 보냅니다. SendMessage 함수는 지정된 창에 대한 창 프로시저를 호출하며 창 프로시저가 메시지를 처리할 때까지 반환되지 않습니다.
메시지를 보내고 즉시 반환하려면 SendMessageCallback 또는 SendNotifyMessage 함수를 사용합니다. 스레드의 메시지 큐에 메시지를 게시하고 즉시 반환하려면 PostMessage 또는 PostThreadMessage 함수를 사용합니다.
SendMessageCallback 지정된 메시지를 창 또는 창으로 보냅니다. 지정된 창에 대한 창 프로시저를 호출하고 즉시 반환합니다. 창 프로시저가 메시지를 처리한 후 시스템은 지정된 콜백 함수를 호출하여 메시지 처리 결과와 애플리케이션 정의 값을 콜백 함수에 전달합니다.
SendMessageTimeout 지정된 메시지를 더 많은 창 중 하나로 보냅니다.
SendNotifyMessage 지정된 메시지를 창 또는 창으로 보냅니다. 호출 스레드에서 창을 만든 경우 SendNotifyMessage 는 창에 대한 창 프로시저를 호출하고 창 프로시저가 메시지를 처리할 때까지 반환되지 않습니다. 창이 다른 스레드에 의해 만들어진 경우 SendNotifyMessage 는 창 프로시저에 메시지를 전달하고 즉시 반환합니다. 창 프로시저가 메시지 처리를 완료할 때까지 기다리지 않습니다.
SetMessageExtraInfo 현재 스레드에 대한 추가 메시지 정보를 설정합니다. 추가 메시지 정보는 현재 스레드의 메시지 큐와 연결된 애플리케이션 또는 드라이버 정의 값입니다. 애플리케이션은 GetMessageExtraInfo 함수를 사용하여 스레드의 추가 메시지 정보를 검색할 수 있습니다.
TranslateMessage 가상 키 메시지를 문자 메시지로 변환합니다. 문자 메시지는 다음에 스레드가 GetMessage 또는 PeekMessage 함수를 호출할 때 읽을 호출 스레드의 메시지 큐에 게시됩니다.
WaitMessage 스레드에 메시지 큐에 다른 메시지가 없는 경우 다른 스레드에 대한 제어를 생성합니다. WaitMessage 함수는 스레드를 일시 중단하고 새 메시지가 스레드의 메시지 큐에 배치될 때까지 반환되지 않습니다.

메시지 상수

속성 설명
OCM__BASE 프라이빗 창 클래스에서 사용할 프라이빗 메시지를 정의하는 데 사용됩니다.
WM_APP 프라이빗 메시지를 정의하는 데 사용됩니다.
WM_USER 프라이빗 창 클래스에서 사용할 프라이빗 메시지를 정의하는 데 사용됩니다.

메시지 구조체

속성 설명
BSMINFO BroadcastSystemMessageEx의 요청을 거부한 창에 대한 정보를 포함합니다.
메시지 스레드 메시지 큐의 메시지 정보를 포함합니다.