아주 쉽게 트레이를 만들었다. 소스 첨부할께염. 3개임 트레이등록과 삭제 그리고 리프레쉬
Tray.zip <-트레이소스임!!
void CH7TrayDlg::RegistTrayIcon()
{
NOTIFYICONDATA nid;
nid.cbSize = sizeof(nid); // 구조체의 크기
nid.hWnd = m_hWnd; // 메인 윈도우 핸들
nid.uID = IDR_MAINFRAME; // 아이콘 리소스 ID
nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP; // 플래그 설정
nid.uCallbackMessage = WM_TRAYICON_MSG; // 콜백메시지 설정
nid.hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); // 아이콘 로드
lstrcpy(nid.szTip, "Long live the Queen");
Shell_NotifyIcon(NIM_ADD, &nid); // Tray Icon을 시스템에 등록
SendMessage(WM_SETICON, (WPARAM)TRUE, (LPARAM)nid.hIcon);
m_bIsTrayIcon = TRUE; // tray 등록되었다는 플래그 설정
// sMenu = new CMenu; // tray icon이 눌렸을때 팝업될 메뉴
// sMenu->LoadMenu(IDR_MENU1);
}
void CH7TrayDlg::DestroyTrayIcon()
{
if( m_bIsTrayIcon ) // 현재 트레이 아이콘으로 설정되었는지 확인
{
//delete sMenu;
NOTIFYICONDATA nid;
nid.cbSize = sizeof(nid);
nid.hWnd = m_hWnd; // 메인 윈도우 핸들
nid.uID = IDR_MAINFRAME;
// 작업 표시줄(TaskBar)의 상태 영역에 아이콘을 삭제한다.
Shell_NotifyIcon(NIM_DELETE, &nid);
TeleShellTrayRefresh::Refresh();
}
}
'NativeCode > mfc' 카테고리의 다른 글
SystemParametersInfo (0) | 2010.03.18 |
---|---|
Timer Callback (0) | 2010.03.18 |
Tray Icon Refresh (0) | 2010.03.18 |
메뉴이벤트 등록하기 (0) | 2010.03.18 |
트레이아이콘으로 이동하는 애니메이션 (0) | 2010.03.18 |