TrayIcon이 사라지는 경우
혹시 TrayIcon이 사라지는 경우를 겪어보신적 있으세요?
윈도우즈의 탐색기인 exeplore.exe가 새로 실행되면 trayicon이 모두 사라집니다.
그러면 tray에 아이콘을 add해 두었던 process에서 알아서 다시 add해줘야하죠
탐색기 exeplore.exe가 새로 실행되는것을 알려면?
그럼 exeplore.exe가 새로 실행되었다는것을 알아야 tray에 아이콘을 새로 등록할것인데..
그 시점을 어떻게 알수 있을까요?
그것은 "TaskbarCreated"라는 메세지를 등록해서 그것을 모니터링해서 알수 있습니다.
아래와 같이 하면 explore.exe가 다시 실행되었을때 trayicon이 사라지는 문제가 없습니다.
UINT iTaskBarCreate;
void __fastcall TF_LogMain::FormCreate(TObject *Sender)
{
iTaskBarCreate = ::RegisterWindowMessage(_T("TaskbarCreated"));
}
void __fastcall TF_LogMain::WndProc(Messages::TMessage &Message)
{
if(Message.Msg==iTaskBarCreate)
{
//탐색기가 다시 실행되었을때 TrayIcon 다시 등록
AddTrayIcon();
}
TForm::WndProc(Message);
}
//------------------------------------------------------
뭐 별건 아닌데..
쪼금더 완성도 높은 Application을 위하여..
|