2009-05-23 4 views
3

풍선 도움말을 표시하려면 작업 표시 줄 아이콘을 강제로 매우 쉽게 만들 수 있습니다. Shell_NotifyIcon (NIM_MODIFY, ...)을 호출 할 때 NIF_INFO 플래그를 설정하면 풍선 도움말이 나타나지만 아무런 문제가 없습니다.원하는대로 작업 표시 줄 풍선을 숨기는 방법?

이제 더 이상 풍선을 필요로하지 않을 때 풍선을 숨길 수 있기를 원하지만 그럴 수는 없습니다. NIF_INFO 플래그를 지우고 Shell_NotifyIcon (NIM_MODIFY, ...) 호출했지만 풍선 남아있었습니다. 그것은 몇 초 후에 사라집니다. 그러나 그것은 제가 원했던 것이 아닙니다. 즉, 프로그램을 숨겨야한다고 생각할 때 즉시 숨기고 싶습니다.

풍선을 사라지게하는 유일한 방법은 아이콘을 파괴 한 다음 다시 작업 표시 줄에 추가하는 것입니다.하지만보기에는 엉망입니다.

작업 표시 줄 아이콘을 다시 만들지 않고도 풍선을 숨길 수 있습니까? 감사.

답변

4

즉시 nid.szInfo[0] = 0;처럼, 빈 문자열로 NOTIFYICONDATAszInfo 멤버를 설정, 풍선을 숨기고 Shell_NotifyIcon(NIM_MODIFY, &nid)를 호출합니다.

+0

Windows 10에서 작동하지 않는 것 같습니다. – Paul

3

알림 풍선을 강제로 제거하는 것이 사용자의 최대 관심사는 아닙니다. 때로는 사용자가 즉시 알림을 보지 않고, 몇 초가 지나면 서서히 사라져서 풍선이 사라지기 전에 살펴볼 기회가 주어집니다. 사용성의 관점에서, 풍선을 표시하는 것은 응용 프로그램의 책임이어야하지만, 풍선 제거는 실제로 사용자의 책임이어야합니다. 그렇지 않으면, 실제로보고 싶어하는 정보를 숨길 수 있으며이를 즉시 숨김으로써 풍선이 사라지는 동안 사용자가 가진 "마지막 기회"를 완전히 제거 할 수 있습니다.

+0

풍선을 사용자가 검토 할 수 있도록 배치해야하는 경우가 있지만, 풍선 제거로 더 나은 환경을 제공해야하는 경우가 많습니다. 예를 들어 내 프로그램이 서버에 연결하려고한다는 것을 사용자에게 알리고 싶다고 가정 해 봅시다. 연결에는 단지 1 초가 걸릴 수 있으며, 그 후에는 "서버에 연결 중 ..."풍선이 계속 나타나지 않습니다. 사실, 이것은 사용자를 혼동시킬 수 있습니다. 이미 연결되었지만 풍선에 "연결 중 ..."이라고 표시되면 프로그램에 문제가 있습니까? –

+4

그래서 풍선을 숨기지 않고 텍스트를 "연결됨"으로 변경하십시오. 사용자가 독자적으로 닫을 수 있도록 허용합니다. ;) – jrista

+0

그건 좋은 생각이야, 고마워! –