Shell_NotifyIconA 함수(shellapi.h)
작업 표시줄의 상태 영역에 메시지를 보냅니다.
구문
BOOL Shell_NotifyIconA(
[in] DWORD dwMessage,
[in] PNOTIFYICONDATAA lpData
);
매개 변수
[in] dwMessage
형식:DWORD
이 함수에서 수행할 작업을 지정하는 값입니다. 다음 값 중 하나일 수 있습니다.
NIM_ADD(0x00000000)
0x00000000. 상태 영역에 아이콘을 추가합니다. 아이콘에는 uID 또는 guidItem 멤버를 통해 lpdata가 가리키는 NOTIFYICONDATA 구조체의 식별자가 제공됩니다. 이 식별자는 아이콘에 대한 이후 작업을 수행하기 위해 Shell_NotifyIcon 대한 후속 호출에 사용됩니다.
NIM_MODIFY(0x00000001)
0x00000001. 상태 영역에서 아이콘을 수정합니다. lpdata가 가리키는 NOTIFYICONDATA 구조는 알림 영역(NIM_ADD)에 추가될 때 원래 아이콘에 할당된 ID를 사용하여 수정할 아이콘을 식별합니다.
NIM_DELETE(0x00000002)
0x00000002. 상태 영역에서 아이콘을 삭제합니다. lpdata가 가리키는 NOTIFYICONDATA 구조체는 알림 영역(NIM_ADD)에 추가될 때 원래 아이콘에 할당된 ID를 사용하여 삭제할 아이콘을 식별합니다.
NIM_SETFOCUS(0x00000003)
0x00000003. 버전 5.0 이상만Shell32.dll. 작업 표시줄 알림 영역에 포커스를 반환합니다. 알림 영역 아이콘은 UI 작업을 완료할 때 이 메시지를 사용해야 합니다. 예를 들어 아이콘에 바로 가기 메뉴가 표시되지만 사용자가 ESC를 눌러 취소하는 경우 NIM_SETFOCUS 사용하여 알림 영역에 포커스를 반환합니다.
NIM_SETVERSION(0x00000004)
0x00000004. 버전 5.0 이상만Shell32.dll. lpdata가 가리키는 구조체의 uVersion 멤버에 지정된 버전 번호에 따라 동작하도록 알림 영역에 지시합니다. 버전 번호는 인식되는 멤버를 지정합니다.
알림 영역 아이콘이 추가될 때마다 NIM_SETVERSION 호출해야 합니다(NIM_ADD). NIM_MODIFY 사용하여 호출할 필요는 없습니다. 사용자가 로그오프하면 버전 설정이 유지되지 않습니다.
자세한 내용은 설명 부분을 참조하십시오.
[in] lpData
형식: PNOTIFYICONDATA
NOTIFYICONDATA 구조체에 대한 포인터입니다. 구조체의 내용은 dwMessage 값에 따라 달라집니다. 알림 영역에 추가할 아이콘을 정의하거나, 해당 아이콘이 알림을 표시하도록 하거나, 수정하거나 삭제할 아이콘을 식별할 수 있습니다.
반환 값
형식: BOOL
성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다. dwMessage가 NIM_SETVERSION 설정된 경우 버전이 성공적으로 변경된 경우 함수는 TRUE를 반환하고, 요청된 버전이 지원되지 않는 경우 FALSE를 반환합니다.
설명
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 셸은 연결된 애플리케이션에 NIN_KEYSELECT 알림을 보냅니다. 이전 버전은 WM_RBUTTONDOWN 및 WM_RBUTTONUP 메시지를 보냅니다.
- 사용자가 마우스로 알림 아이콘을 선택하고 ENTER 키를 사용하여 활성화하면 셸은 이제 연결된 애플리케이션에 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에 도입됨) |