C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[89] [Tip] TrayIcon 만들기
제라툴 [zeratul] 8661 읽음    2001-04-11 13:56
제라툴입니다.

간단한 팁하나 소개할게여...
요즘 메신저나 그밖의 프로그램들이 대부분 트라이 아이콘 형태로 배포되는
경우가 많습니다.^^
그래서 트라이 아이콘을 만드는 방법을 하나 소개 할까합니다. 물론 2000에서
하는 방법이구요.. 98에서는 될지 안될지 모르곘내용..

트라이 아이콘을 만들기 위해서는 우선 NOTIFYICONDATA 구조체와 Shell_NotifyIcon 함수에 대해서 알아야 합니다.
Shell_NotifyIcon는 테스크바 지역의 아이콘을 생성하고 수정하고 지우는 메시
지를 관리하는 API 합수 입니다.
또 NOTIFYICONDATA구조체는 Shell_NotifyIcon의 인자로 들어가는 중요한
구조체인데.. Icon의 상태와 또 테스크바지역의 메시지를 관리할 수있도록
메시지에관한 설정이 들어가는 구조체입니다.

그럼 이두가지를 이용해서.. 어떻게 트라이 아이콘을 만들것인가...
궁금하죠..간단합니다.

우선 NOTIFYICONDATA 구조체 변수를 하나 선언 합니다.
(예 NOTIFYICONDATA tnd;)
그런다음 이 구조체를 Setting해야 겠죠..^^
(예.
tnd.cbSize = sizeof(NOTIFYICONDATA);//구조체의 크기 저장
tnd.hWnd = Handle;//TrayIcon을 만들고자하는 Form 의 Handle
tnd.uID = IDC_MYICON;//임으로 정의한 ID
tnd.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;
//NIF_MESSAGE : uCallbackMessage 사용 가능(The uCallbackMessage member is valid.) 
//NIF_ICON : hIcon 사용 가능(The hIcon member is valid. )
//NIF_TIP : szTip 사용 가능(The szTip member is valid.)
tnd.uCallbackMessage = WM_MYTRAY;
//테스크바에서 이벤트 발생시 WM_MYTRAY메시지를 던진다.
)


이제 세팅이 끝났죠...^^
그럼 Shell_NotifyIcon함수를 실행 하기만 하면 됩니다.
(예. Shell_NotifyIcon(NIM_ADD, &tnd);
Shell_NotifyIcon(NIM_MODIFY, &tnd);
)
물론 Icon의 핸들을 NOTIFYICONDATA에서 Setting한후
Shell_NotifyIcon를 실행 하셔야 합니다.

이렇게 하면 간단히 트라이아이콘을 만들수있습니다.^^
예제 파일을 올리겠습니다.^^

---- 아름다운 청년 제라툴 ----

+ -

관련 글 리스트
89 [Tip] TrayIcon 만들기 제라툴 8661 2001/04/11
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.