PeekMessageW 함수(winuser.h)
큐에 추가되지 않은 들어오는 메시지를 디스패치하고, 게시된 메시지에 대한 스레드 메시지 큐를 확인하고, 메시지(있는 경우)를 검색합니다.
통사론
BOOL PeekMessageW(
[out] LPMSG lpMsg,
[in, optional] HWND hWnd,
[in] UINT wMsgFilterMin,
[in] UINT wMsgFilterMax,
[in] UINT wRemoveMsg
);
매개 변수
[out] lpMsg
형식: LPMSG
메시지 정보를 수신하는 MSG 구조체에 대한 포인터입니다.
[in, optional] hWnd
형식: HWND
메시지를 검색할 창에 대한 핸들입니다. 창은 현재 스레드에 속해야 합니다.
[in] wMsgFilterMin
형식: UINT
검사할 메시지 범위에서 첫 번째 메시지의 값입니다. WM_KEYFIRST(0x0100)를 사용하여 첫 번째 키보드 메시지 또는 WM_MOUSEFIRST(0x0200)를 지정하여 첫 번째 마우스 메시지를 지정합니다.
wMsgFilterMin 및 wMsgFilterMax 모두 0이면 peekMessage 사용 가능한 모든 메시지를 반환합니다(즉, 범위 필터링이 수행되지 않음).
[in] wMsgFilterMax
형식: UINT
검사할 메시지 범위의 마지막 메시지 값입니다. WM_KEYLAST 사용하여 마지막 키보드 메시지 또는 WM_MOUSELAST 지정하여 마지막 마우스 메시지를 지정합니다.
wMsgFilterMin 및 wMsgFilterMax 모두 0이면 peekMessage 사용 가능한 모든 메시지를 반환합니다(즉, 범위 필터링이 수행되지 않음).
[in] wRemoveMsg
형식: UINT
메시지를 처리하는 방법을 지정합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
기본적으로 모든 메시지 유형이 처리됩니다. 특정 메시지만 처리하도록 지정하려면 다음 값 중 하나 이상을 지정합니다.
반환 값
형식: BOOL
메시지를 사용할 수 있는 경우 반환 값은 0이 아닌 값입니다.
사용할 수 있는 메시지가 없으면 반환 값은 0입니다.
발언
PeekMessagehWnd 매개 변수로 식별된 창 또는 IsChild 함수에서 지정한 자식 및 wMsgFilterMin 및 wMsgFilterMax 매개 변수로 지정된 메시지 값 범위 내에서 연결된 메시지를 검색합니다. 애플리케이션은 wMsgFilterMin 및 wMsgFilterMax 매개 변수에서만 소문자를 사용할 수 있습니다. 높은 단어는 시스템에 예약되어 있습니다.
이 호출 중에 다음을 수행합니다. 시스템 디스패치(DispatchMessage) 보류 중이거나 큐에 추가되지 않은 메시지, 즉 SendMessage, SendMessageCallback, SendMessageTimeout또는 SendNotifyMessage 함수를 사용하여 호출 스레드가 소유한 창으로 전송되는 메시지입니다. 그런 다음 지정된 필터와 일치하는 첫 번째 큐에 대기 중인 메시지가 검색됩니다. 시스템은 내부 이벤트를 처리할 수도 있습니다. 필터를 지정하지 않으면 메시지는 다음 순서로 처리됩니다.
게시된 메시지 전에 입력 메시지를 검색하려면
PeekMessage 함수는 일반적으로 큐에서 WM_PAINT 메시지를 제거하지 않습니다.
WM_PAINT 메시지는 처리될 때까지 큐에 남아 있습니다. 그러나
최상위 창이 몇 초 이상 메시지에 응답하지 않는 경우 시스템은 창이 응답하지 않는 것으로 간주하고 z 순서, 위치, 크기 및 시각적 특성이 동일한 고스트 창으로 바꿉니다. 이렇게 하면 사용자가 이동하거나 크기를 조정하거나 애플리케이션을 닫을 수 있습니다. 그러나 애플리케이션이 실제로 응답하지 않기 때문에 이러한 작업만 사용할 수 있습니다. 애플리케이션을 디버그할 때 시스템에서 고스트 창을 생성하지 않습니다.
DPI 가상화
이 API는 DPI 가상화에 참여하지 않습니다. 출력은 메시지가 대상으로 하는 창의 모드에 있습니다. 호출 스레드는 고려되지 않습니다.예제
예를 들어 메시지 큐검사하는
메모
winuser.h 헤더는 PEEKMessage를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 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에서 도입) |
참고 항목
개념
GetMessage
MSG
메시지 및 메시지 큐
기타 리소스
참조
waitForInputIdle
waitMessage