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

C++빌더 Q&A
C++Builder Programming Q&A
[59857] Re:트레이아이콘 delete질문이요
장성호 [nasilso] 1044 읽음    2010-01-21 00:43
프로그램의 목적이 무엇인지 궁금하네요

혹시
TrayIcon을 하나등록해놓고..
아이콘이미지를  상황에 따라 바꾸려 하는것인가요?

그렇다면..
-지우고 -clear하고 -추가하고 -변경하고

위 과정을 반복하지 말고

1) 한번만 등록하고
2) 필요할때 그냥 Modify만 하면 아이콘 이미지를 바꿀수 있습니다.

void __fastcall TForm2::ChangeTrayIcon(TIcon *Icon) 
{ 
  NOTIFYICONDATA icondata; 
  memset(&icondata, 0x00, sizeof(icondata)); 
  icondata.cbSize = sizeof(icondata); 
  icondata.hWnd = Handle; 
    icondata.uFlags = NIF_ICON; 
    icondata.hIcon = Icon->Handle; 
  Shell_NotifyIcon(NIM_MODIFY,&icondata); 
} 



참 그리고 제가 작성한 ClearTray(); 함수의 소스가 어디있나요?
여기 사이트에 있었남?

그럼..



도상곤 님이 쓰신 글 :
: bool __fastcall TMainForm::TrayMessage(DWORD dwMessage)
: {
:     NOTIFYICONDATA NCond;
:     PSTR StrHint;
:     StrHint = "Hint";
:     NCond.cbSize = sizeof(NOTIFYICONDATA);
:     NCond.hWnd = Handle;
:     NCond.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;
:     NCond.uCallbackMessage = MYWM_NOTIFY;
:     if(dwMessage == NIM_MODIFY)
:     {
:         NCond.hIcon = Image_Tray->Picture->Icon->Handle;
:         lstrcpyn(NCond.szTip, StrHint, sizeof(NCond.szTip));
:     }
:     else
:     {
:         NCond.hIcon = NULL;
:         NCond.szTip[0] = '\0';
:     }
:     return (Shell_NotifyIcon(dwMessage, &NCond));
: }
:
: 제가 트레이를 조종할때 쓰는 소스입니다
:
: 이렇게 해놓고
:
: TrayMessage(NIM_ADD);
: TrayMessage(NIM_MODIFY);
: 이런식으로 추가를하면 추가가 되는데요
:
: DELETE는 방금 소스바로아래에 넣었을경우에는
: 무지잘됩니다
: 근데 다른함수에서 프로세서를 감지할경우 꺼버리게하고
: count를 증가시켜서 6부터는 다른이미지를 트레이에 입력하고자
: 아래와같이 입력을 해봤습니다만 제일첨에생성한 트레이는 안사라지네요;
:         count++;
:         if(count<=5){
:             Image_Tray->Picture->Icon->LoadFromFile(ExeName+"icon\\shield_green.ico");
:             TrayMessage(NIM_DELETE);
:             ClearTray();//장성호님의 소스
:             TrayMessage(NIM_ADD);
:             TrayMessage(NIM_MODIFY);
:         }
:         else if(count<=10){
:             Image_Tray->Picture->Icon->LoadFromFile(ExeName+"icon\\shield_yellow.ico");
:             TrayMessage(NIM_DELETE);
:             ClearTray();//장성호님의 소스
:             TrayMessage(NIM_ADD);
:             TrayMessage(NIM_MODIFY);
:         }
:         else{
:             Image_Tray->Picture->Icon->LoadFromFile(ExeName+"icon\\shield_red.ico");
:             TrayMessage(NIM_DELETE);
:             ClearTray();//장성호님의 소스
:             TrayMessage(NIM_ADD);
:             TrayMessage(NIM_MODIFY);
:         }
: 파일첨부하겠습니다
: 스크린샷첨부에요

+ -

관련 글 리스트
59856 트레이아이콘 delete질문이요 도상곤 1300 2010/01/20
59857     Re:트레이아이콘 delete질문이요 장성호 1044 2010/01/21
59866         장성호님 질문2요;; 도상곤 869 2010/01/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.