app가 트레이에만 띄우도록 하려면
페이지 정보
본문
winamp같은 어플리케이션이 실행될 때 윈도우가 뜨더라도
상태바에는 뜨지 않고 트레이에만 생기는 모습을 보았을 것이다.
이것을 구현하려면 다음의 코드를 사용한다
void HideApplication(HWND hwnd)
{ ShowWindow(hwnd, SW_HIDE);
ShowOwnedPopups(hwnd, FALSE);
SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
CApp 클래스에 위와 같은 이름을 가진 멤버 함수가 존재하는데
그 함수를 사용해도 된다.
실제 응용 프로그램을 태스크 바에서 사라지도록 하는 것은
SetWindowPos API에 있다.
또한 Shell_NotifyIcon이란 API가 있는데 이것을 이용해봐도 될 것이다.
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid );
주의해야할 것은 응용 프로그램은 메인 프레임을 가져야 하나
메인 프레임을 활성화시키지는 않도록 한다.
활성화만 안시키면 <Alt-Tab>에서 나타나지 않을 것이다.
대신 별도의 윈도우를 WS_POS으로 만들어 이를 트레이에 등록해야 한다.
즉, 트레이에 등록된 팝업 스타일의 윈도우가 모든 메시지를 가로채도록 하기 위함이다.
상태바에는 뜨지 않고 트레이에만 생기는 모습을 보았을 것이다.
이것을 구현하려면 다음의 코드를 사용한다
void HideApplication(HWND hwnd)
{ ShowWindow(hwnd, SW_HIDE);
ShowOwnedPopups(hwnd, FALSE);
SetWindowPos(hwnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
}
CApp 클래스에 위와 같은 이름을 가진 멤버 함수가 존재하는데
그 함수를 사용해도 된다.
실제 응용 프로그램을 태스크 바에서 사라지도록 하는 것은
SetWindowPos API에 있다.
또한 Shell_NotifyIcon이란 API가 있는데 이것을 이용해봐도 될 것이다.
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage, PNOTIFYICONDATA pnid );
주의해야할 것은 응용 프로그램은 메인 프레임을 가져야 하나
메인 프레임을 활성화시키지는 않도록 한다.
활성화만 안시키면 <Alt-Tab>에서 나타나지 않을 것이다.
대신 별도의 윈도우를 WS_POS으로 만들어 이를 트레이에 등록해야 한다.
즉, 트레이에 등록된 팝업 스타일의 윈도우가 모든 메시지를 가로채도록 하기 위함이다.
댓글목록
등록된 댓글이 없습니다.