작업 표시줄의 상태 영역에 메시지를 보냅니다.
BOOL Shell_NotifyIconA(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAA lpData
);
[in] dwMessage
형식: DWORD
이 함수에서 수행할 작업을 지정하는 값입니다. 다음 값 중 하나를 가질 수 있습니다.
0x00000000. 상태 영역에 아이콘을 추가합니다. 아이콘에는 uID 또는 guidItem 멤버를 통해 lpdata가리키는 NOTIFYICONDATA 구조의 식별자가 제공됩니다. 이 식별자는 아이콘에 대한 이후 작업을 수행하기 위해 Shell_NotifyIcon 후속 호출에 사용됩니다.
0x00000001. 상태 영역에서 아이콘을 수정합니다.
0x00000002. 상태 영역에서 아이콘을 삭제합니다. NOTIFYICONDATA 구조는 lpdata 알림 영역(NIM_ADD)에 추가될 때 원래 아이콘에 할당된 ID를 사용하여 삭제할 아이콘을 식별합니다.
0x00000003. Shell32.dll 버전 5.0 이상은. 작업 표시줄 알림 영역에 포커스를 반환합니다. 알림 영역 아이콘은 UI 작업을 완료했을 때 이 메시지를 사용해야 합니다. 예를 들어 아이콘에 바로 가기 메뉴가 표시되지만 사용자가 ESC를 눌러 취소하는 경우 NIM_SETFOCUS 사용하여 알림 영역에 포커스를 반환합니다.
0x00000004. Shell32.dll 버전 5.0 이상은. lpdata가리키는 구조체의 uVersion 멤버에 지정된 버전 번호에 따라 동작하도록 알림 영역에 지시합니다. 버전 번호는 인식되는 멤버를 지정합니다.
알림 영역 아이콘이 추가될 때마다 NIM_SETVERSION 호출해야 합니다(NIM_ADD). NIM_MODIFY 호출할 필요는 없습니다. 사용자가 로그오프한 후에는 버전 설정이 유지되지 않습니다.
자세한 내용은 설명 섹션을 참조하세요.
[in] lpData
형식: PNOTIFYICONDATA
NOTIFYICONDATA 구조체에 대한 포인터입니다. 구조체의 내용은 dwMessage값에 따라 달라집니다. 알림 영역에 추가할 아이콘을 정의하거나, 해당 아이콘이 알림을 표시하도록 하거나, 수정하거나 삭제할 아이콘을 식별할 수 있습니다.
형식: BOOL
성공하면
Windows 2000(Shell32.dll 버전 5.0)을 기준으로 lpdata 가리키는 NOTIFYICONDATA 구조의 uVersion 멤버를 NOTIFYICON_VERSION_4 이상으로 설정하면 Shell_NotifyIcon 마우스 및 키보드 이벤트가 이전 버전의 Windows와 다르게 처리됩니다. 차이점은 다음과 같습니다.
- 사용자가 키보드를 사용하여 알림 아이콘의 바로 가기 메뉴를 선택하면 Shell에서 연결된 애플리케이션에 WM_CONTEXTMENU 메시지를 보냅니다. 이전 버전은 WM_RBUTTONDOWN 및 WM_RBUTTONUP 메시지를 보냅니다.
- 사용자가 키보드로 알림 아이콘을 선택하고 스페이스바 또는 ENTER 키로 활성화하는 경우 버전 5.0 Shell은 연결된 애플리케이션에 NIN_KEYSELECT 알림을 보냅니다. 이전 버전은 WM_RBUTTONDOWN 및 WM_RBUTTONUP 메시지를 보냅니다.
- 사용자가 마우스로 알림 아이콘을 선택하고 ENTER 키로 활성화하면 이제 Shell에서 연결된 애플리케이션에 NIN_SELECT 알림을 보냅니다. 이전 버전은 WM_RBUTTONDOWN 및 WM_RBUTTONUP 메시지를 보냅니다.
- NIN_BALLOONSHOW. 풍선이 표시되면 전송됩니다(풍선이 큐에 대기됨).
-
NIN_BALLOONHIDE. 풍선이 사라질 때 전송됩니다. 예를 들어 아이콘이 삭제되는 경우입니다. 시간 제한으로 인해 풍선이 해제되거나 사용자가 마우스를 클릭하면 이 메시지가 전송되지 않습니다.
Windows 7을 기준으로 NIIF_RESPECT_QUIET_TIME 플래그가 설정된 알림이 조용한 시간(새 컴퓨터에서 사용자의 첫 번째 시간)에 표시하려고 할 때도 NIN_BALLOONHIDE 전송됩니다. 이 경우 풍선은 전혀 표시되지 않습니다.
- NIN_BALLOONTIMEOUT. 시간 제한으로 인해 풍선이 해제될 때 전송됩니다.
- NIN_BALLOONUSERCLICK. 사용자가 마우스를 클릭했기 때문에 풍선이 해제될 때 전송됩니다.
- NIN_POPUPOPEN. 사용자가 아이콘 위에 커서를 놓으면 표준 텍스트 도구 설명 대신 더 풍부한 팝업 UI를 사용해야 함을 나타내기 위해 전송됩니다.
- NIN_POPUPCLOSE. 커서가 더 이상 아이콘 위로 마우스를 가져가지 않을 때 전송되어 서식 있는 팝업 UI를 닫아야 함을 나타냅니다.
참고
shellapi.h 헤더는 유니코드 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 Shell_NotifyIcon 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows XP [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | shellapi.h |
라이브러리 | Shell32.lib |
DLL | Shell32.dll(버전 4.0 이상) |
API 집합 | ext-ms-win-shell-shell32-l1-2-1(Windows 10 버전 10.0.10240에서 도입됨) |