어플리케이션에서 화면을 숨겨주는 부분이 있는데 이때 트레이 아이콘으로 등록을
합니다. 물론 그때 기존의 폼은 Hide 를 시켜주구요.
그런데 신기하게도 트레이 아이콘이 같이 Hide 속성을 먹어버리는군요.
마우스만 가져가면 바로 사라지는것입니다.
원래는 화면숨김을 누르면 트레이로 등록하고 트레이에서 팝업메뉴중 다시 보여주기를
하면 보여주려고 했는데 이유를 알수가 없습니다...
제발 아시는분들 이걸 해결해주세요....ㅜ..ㅜ
폼 생성시 이정보를 미리 가지고 있습니다.
with tIconData do begin
cbSize := SizeOf(tIconData);
Wnd := Self.Handle;
uID := 100;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER + 1;
hIcon := Application.Icon.Handle;
StrPCopy(szTip, Application.Title);
end;
이부분이 윈프로시져 부분이구요..
procedure Ttest.WndProc(var message : TMessage);
var
p : TPoint;
begin
case message.Msg of
TEST_ID:
case message.lParam of
WM_RBUTTONDOWN: begin
GetCursorPos(p);
TrayPop.Popup(p.x, p.y);
end;
end;
end;
inherited;
end;
이부분이 화면숨기기 부분입니다..
Shell_NotifyIcon(NIM_ADD, @tIconData);
Hide;
그리고 이부분이 팝업으로 다시 보여주는 부분이구요..
Shell_NotifyIcon(NIM_DELETE, @tIconData);
Show;
그런데 Hide 를 하고 마우스만 가져가면 사라집니다..
제발 이유를 알려주세요...부탁...드립니다..