DwMessage 는 수행할 작업을 나타내는 메시지를 전달하는 입력 매개변수입니다. 선택 가능한 값은 다음과 같습니다.
NIM_ADD
트레이 영역에 아이콘을 추가합니다. 이제 두 번째 매개변수인 lpdata 가 가리키는 NOTIFYICONDATA 구조의 hWnd 및 uID 멤버는 나중에 Shell_NotifyIcon 을 사용하여 이 아이콘을 다시 조작할 수 있도록 이 아이콘을 표시하는 데 사용됩니다.
NIM_DELETE
트레이 영역에서 아이콘을 삭제합니다. 이제 두 번째 매개변수인 lpdata 가 가리키는 NOTIFYICONDATA 구조의 hWnd 및 uID 멤버는 삭제해야 할 아이콘을 표시하는 데 사용됩니다.
NIM_MODIFY
트레이 영역의 아이콘을 수정합니다. 이제 두 번째 매개변수인 lpdata 가 가리키는 NOTIFYICONDATA 구조의 hWnd 및 uID 멤버는 수정해야 할 아이콘을 표시하는 데 사용됩니다.
NIM_SETFOCUS
Version 5.0. 포커스를 설정합니다. 예를 들어 사용자가 트레이 아이콘 팝업 메뉴를 조작하고 ESC 키를 눌러 메뉴를 제거한 경우 프로그램은 이 메시지를 사용하여 트레이 아이콘에 초점을 맞춰야 합니다.
NIM_SETVERSION
Version 5.0. 작업 표시줄이 두 번째 매개 변수인 lpdata 가 가리키는 NOTIFYICONDATA 구조의 uVersion 멤버가 지정한 버전 번호로 작동하도록 설정합니다. 이 메시지를 통해 사용자는 Windows2000 기반 버전 5.0 사용 여부를 설정할 수 있습니다. UVersion 의 기본값은 0 이며 기본값은 원본 Windows 95 아이콘 메시지 스타일을 사용함을 나타냅니다. 구체적인 차이점은 msdn 의 셸 _ notifyicon 함수에 설명된 Remarks 를 참조하십시오.
Lpdata 는 입력 매개변수이며, NOTIFYICONDATA 구조에 대한 포인터로, 구조 내용은 첫 번째 매개변수인 wMessage 와 함께 아이콘을 조작하는 데 사용됩니다.
아이콘 작업이 성공적으로 TRUE 를 반환하면 그렇지 않으면 FALSE 를 반환합니다.
DwMessage 매개변수가 NIM_SETVERSION 으로 설정된 경우 버전 설정이 TRUE 를 성공적으로 반환하면 설정된 버전이 FALSE 반환을 지원하지 않습니다.
이 함수는 주로 작업 표시줄 오른쪽에 있는 트레이 아이콘 작업에 사용됩니다. MFC 에서 트레이로 최소화할 수 있는 구체적인 작업은 다음과 같습니다.
1. Resource 에 새 아이콘 Icon 을 생성합니다.
2. 형식 클래스에 NOTIFYICONDATA 구조 객체 m_nfData 를 추가하여 OnInitDialog () 메서드에서 구조를 초기화할 수 있습니다.
3. OnSize(UINT, int, int) 함수를 다시 작성하여 SIZE_MINIMIZED 메시지를 직접 처리합니다. 즉, 최소화된 처리를 클릭합니다.
예:
Void cyourprojectdlg:: onsize (uintntype, int CX, int cy)
{
If( nType == SIZE_MINIMIZED) // 메시지 가로채기
{
셸 _ notifyicon (nim _ add, amp;; M _ nfdata);
창 보기 (SW _ hide);
}
Else // 기타 메시지는 기본 처리 방식으로
처리됩니다Cdialog:: onsize (ntype, CX, cy);
}
4. 메시지 매핑을 추가하고 WM_TRAYICON 메시지 처리, 즉 트레이 아이콘을 클릭한 후 처리
ON_MESSAGE(WM_TRAYICON, amp;; Cyourprojectdlg:: on trayicon)
5. 메시지 매핑 함수를 구현하고 특정 작업 (예:
) 을 추가합니다Lresult clogcleantooldlg:: ontrayicon (wparam wparam, LPARAM lParam)
{
If(lParam == WM_LBUTTONDBLCLK) // 트레이 아이콘을 두 번 클릭
{
셸 _ notifyicon (nim _ delete, amp;; M _ nfdata);
창 보기 (SW _ shownormal);
Setforegroundwindow ();
}
Return 0;;
}
이것이 가장 흔한 용법이다. 다른 개성을 조작하려면 NOTIFYICONDATA 구조의 매개변수만 수정하면 됩니다.