트레이 아이콘 만들기
▶ 헤더파일에
// 사용자 정의 메세지
// string table 화일에 선언해도됌.
#define WM_ICON_NOTIFY WM_USER+10
// 메세지맵 추가
afx_msg LONG OnTrayNotifying(WPARAM wParam, LPARAM lParam);
-----------------------------------------------------------------------------
▶ CPP파일에
//메세지맵 추가
ON_MESSAGE(WM_ICON_NOTIFY, OnTrayNotifying)
// 메세지 처리 함수
LONG CXXXXDlg::OnTrayNotifying(WPARAM wParam, LPARAM lParam)
{
NOTIFYICONDATA data;
CString fname;
fname = "트레이아이콘일때 표시명"
switch(lParam)
{
case WM_LBUTTONDOWN :
data.cbSize = sizeof(NOTIFYICONDATA);
data.hWnd = m_hWnd;
data.uID = IDR_MAINFRAME;
Shell_NotifyIcon(NIM_DELETE,&data);
ShowWindow(SW_SHOW);
break;
default :
data.cbSize = sizeof(NOTIFYICONDATA);
data.uFlags = NIF_TIP;
data.hWnd = m_hWnd;
data.uID = IDR_MAINFRAME;
strcpy(data.szTip,(LPSTR)(LPCTSTR)(fname));
Shell_NotifyIcon(NIM_MODIFY,&data);
break;
}
return TRUE;
}
// 프로그램을 트레이아이콘에 넣는 버튼
void CXXXXDlg::OnMini()
{
NOTIFYICONDATA data;
HICON hIcon;
data.cbSize = sizeof(NOTIFYICONDATA);
data.hWnd = m_hWnd;
data.uID = IDR_MAINFRAME;
data.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
data.uCallbackMessage = WM_ICON_NOTIFY;
// 트레이 아이콘 로드
hIcon=(HICON)LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_TRAY_ICON));
data.hIcon = hIcon;
// 트레이 표시명
CString fname;
fname.Format("%s [MPYANG] ",fname);
strcpy(data.szTip, (LPSTR)(LPCTSTR)(fname));
Shell_NotifyIcon(NIM_ADD, &data);
if(hIcon)
DestroyIcon(hIcon);
ShowWindow(SW_HIDE);
}
출처 : http://shad0w.springnote.com/pages/430879
Junios World