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
[63462] [수정]트레이아이콘 질문2-2(완결)
locke [syiware] 1333 읽음    2011-01-12 08:52
원인을 찾았습니다. 일단 아래 소스를..

void __fastcall TForm1::TrayEvent(TMessage& Msg)
{
  if (Msg.LParam == WM_RBUTTONDOWN)
  {
    POINT P;
    SetForegroundWindow(Handle);
    GetCursorPos(&P);
    PopupMenu1->Popup(P.x, P.y);
  }
}
//---------------------------------------------------------------------------

이건 샘플인데.. 트레이에서 우클릭하면 해당 이벤트로 메시지가 전달됩니다.
SetForegroundWindow()를 빼면 xp에서 작업표시줄 메뉴가 안뜨네요.
근데 우클릭을 해도 팝업이 일단 떠있으면 refresh가 안되고 여전히 그냥 떠있는 상태로 있는게 문제입니다.
우클릭을 하면 기존 팝업이 자동으로 닫히면서 새로운 좌표로 떠줘야 되는데..이게 안된다는거죠..
이거 해결방법이 있을까요?? xp에서 간단히 트레이 만들어서 Shell_NotifyIcon() 써보시면
제가 뭐 때문에 문제인지 금방 아실겁니다. 도와주십시오. 이것때문에 미치겠네요.
-locke

locke 님이 쓰신 글 :
: xp에서만 발생하는 문제입니다.
:
: 트레이 아이콘의 특정 영역(주로 가장자리)를 오른쪽 클릭하면
:
: 어플리케이션 메뉴만 보이는게 아니라 태스크바 팝업까지 같이 뜨는 경우가 발생합니다.
:
: Shell_NotifyIcon API를 통해서 등록을 하는데 어디를 어떻게 고쳐야 이 문제가 해결될지 감도 안오네요.
:
: 해결책이 없을까요? 요즘 이런거 때문에 죽겠네요.
:
: ps: 아이콘 이미지는 32*32*32 사이즈입니다.
:
: exe 자체에 있는 아이콘은 문제가 안되는데.. TImage로 로드한 이미지의 Icon을
:
: Shell_NotifyIcon으로 설정할때 이러한 현상이 생기네요. 해결책이 없을까요?
:
: 원인이 뭔지 모르겠네요.
:
: 그리고 이상한건.. NotifyIconData구조체의 uID 값을 바꿔도 아이콘 모양이 바뀌지않습니다.
:
: 각 크기별 컬러별로 11개의 아이콘이 함께 들어있는데 말이죠.
:
: 뭔가 다른 처리를 해주어야 할지..? 이걸 따로 TImage를 써서 등록하는 이유가..
:
: 트레이에는 이놈이 나와야 하기 때문에.. 아이콘 파일에서 따로 추출해갖고 개별로 처리하느라 이렇게 한거거든요.
:
: 만약 exe에 등록된 아이콘들 중에 특정 아이콘으로 설정해서 그놈이 트레이에 올라오면
:
: 이렇게 할 필요가 없는게..그게 안됩니다. uID값 세팅을 어떻게 하는건지도 잘 모르겠네요.
:
: 0~255까지 값을 바꿔봐도 아이콘 모양 전혀 안바뀌네요.
:
: 도와주세요.

+ -

관련 글 리스트
63458 [수정]트레이아이콘 질문2-1 locke 1087 2011/01/11
63462     [수정]트레이아이콘 질문2-2(완결) locke 1333 2011/01/12
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.