1. 트레이 아이콘이란?
위에 보이는 작은 아이콘들을 트레이 아이콘(Tray Icon)이라고 부른다.
트레이 아이콘은 하나의 응용프로그램을 대표하면서도 적은 공간을 차지하기 때문에 매우 유용하다. 백그라운드와 같이 프로그램을 가동시킬때 매우 유용하게 사용될수 있다.
2. 트레이 아이콘 생성 예제
자 그럼 트레이 아이콘을 생성 예제를 살펴보자.
2-1) 트레이아이콘 생성
트레이 아이콘을 생성할 곳에 (특정키나 버튼 입력시 혹은 프로그램 초기화시) 다음 소스를 작성한다.
NOTIFYICONDATA nid; nid.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; BOOL bRet = ::Shell_NotifyIcon(NIM_ADD,&nid); //트레이 아이콘 등록 |
Shell_NotifyIcon에서 사용한 NOTIFYICONDATA구조체 선언 밑 초기화를 해준다.
nid.uFlags는 NIF_ICON | NIF_TIP | NIF_MESSAGE등의 아이콘, 툴팁, 메시지 사용을 지정하고 있다.
nid.hIcon은 App의 아이콘을 로드한다.
nid.szTip은 툴팁으로 나올 문자열을 담는다.
nid.uCallbackMessage는 사용자 지정 메시지인 WM_TRAY_NOTIFICATION으로 지정한다.
::Shell_NotifyIcon에 NIM_ADD(아이콘 추가)속성을 지정하고, 설정한 NOTIFYICONDATA구조체 정보를 넘긴다.
2-2) 사용자 메시지 추가하여 트레이아이콘 클릭이벤트 생성하기
[CMainFrame.h]
afx_msg LRESULT OnTrayNotification(WPARAM, LPARAM); |
[CMainFrame.cpp]
#define WM_TRAY_NOTIFICATION WM_APP + 1 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) |
LRESULT CMainFrame::OnTrayNotification(WPARAM wParam, LPARAM lParam) CMenu menu; case WM_LBUTTONDBLCLK: BOOL bRet = ::Shell_NotifyIcon(NIM_DELETE, &nid); //트레이아이콘 제거 |
WM_RBUTTONDOWN 메시지는 현재의 커서 위치를 알아와 트레이 아이콘 위에서 이벤트가 일어날 경우 생성되어 있는 메뉴의 첫번째 인덱스 메뉴를 활성화 시킨다.
WM_LBUTTONDBLCLK 메시지는 트레이 아이콘의 uID를 지정하고 핸들을 얻어와 더블클릭시 트레이아이콘을 제거하고 윈도우를 활성화 시켜준다.
우클릭시 나타나는 메뉴의 수정은 리소스뷰 - Menu - IDR_MAINFRAME에서 수정가능하다.
이상으로 트레이 아이콘 생성하기 포스팅을 마친다.
'My > works' 카테고리의 다른 글
메이븐 (maven) 설치 및 이클립스 연동하기 쉬운설명 (7) | 2013.01.21 |
---|---|
Hadoop(하둡) 설치 및 시작 따라하기 (6) | 2013.01.18 |
[JSP] 이미지(파일) 업로드 작성 예제소스 (20) | 2013.01.17 |
ActiveX(액티브엑스) 만들기 cab 배포하기 (4) | 2013.01.06 |
ActiveX 액티브엑스 설치 안될 경우 해결방안 (cab 배포 실패) (2) | 2013.01.04 |
[MFC] HotKey(핫키)를 사용하여 키보드 막기 예제소스 (0) | 2012.12.27 |
[MFC] STOPWATCH(스톱워치) 시간 측정하기 예제소스 (11) | 2012.12.27 |
[MFC] Cstring <-> Char* 형변환 (0) | 2012.12.26 |
[MFC] 리스트컨트롤(List Control) 사용 Tip (0) | 2012.12.26 |
[MFC] YCbCr <-> RGB 변환 (0) | 2012.12.26 |