본문 바로가기
컴퓨터/MFC_API

작업표시줄에 아이콘 생기지 않게 하기

by adnoctum 2015. 4. 21.




   내가 만든 프로그램의 아이콘이 작업 표시줄(task bar)에 표시되지 않도록 해보자. 



	HWND hWnd = AfxGetMainWnd()->GetSafeHwnd(); 
 
	long style = GetWindowLong(hWndGWL_EXSTYLE); 
	style &= ~(WS_VISIBLE); 
	style |= WS_EX_TOOLWINDOWstyle &= ~(WS_EX_APPWINDOW); 
 
	::ShowWindow(hWndSW_HIDE); 
	SetWindowLong(hWndGWL_EXSTYLEstyle); 
	::ShowWindow(hWndSW_SHOW); 




위와 같이 하면 된다. 구글에서 "C++ hide window from taskbar" 로 검색하면 나오는 첫 결과인 이 페이지[각주:1]를 따랐는데, 이 곳에 나와 있는 첫 번째 답변을  따라 그대로 하면 안 되었다. 그런데 질문 밑에 있는 BrendanMcK 의 답변에 의하면 GWL_STYLE 대신 GWL_EXSTYLE 을 사용하면 된다고 해서, 그렇게 하니 되었다. 어쨌든, 원리 - 라고 하긴 좀 그렇지만 - 를 좀 보자면, MSDN에서 설명하기를 taskbar 에 윈도우가 표시되지 않게 하기 위해선 toolbar 처럼 속성을 지정하면 된다고 한다. 만약 이미 툴바같은 속성이 없이 만들어진 윈도우를 taskbar 에서 감추기 위해선 무조건 style 만 변경해서 될 것이 아니라, 우선 감추고, 스타일을 변경하고, 그 후 다시 보이라고 했다. 따라서 위처럼 하면 된다. 





  1. StackOverflow 싸이트. [본문으로]