트레이 아이콘 만들기

▶ 헤더파일에

// 사용자 정의 메세지

// 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

2007/09/30 19:13 2007/09/30 19:13
Posted by Junios

트랙백 보낼 주소 : http://junios.net/tc/trackback/181

<< PREV : [1] : ... [97] : [98] : [99] : [100] : [101] : [102] : [103] : [104] : [105] : ... [187] : NEXT >>

BLOG main image
Junios World by Junios

카테고리

전체 (187)
주저리 (60)
Tips (8)
적어놓기 (7)
Hacking (1)
Programming (110)
(1)

최근에 받은 트랙백

글 보관함

달력

«   2012/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Total : 121508
Today : 20 Yesterday : 60