본문 바로가기

개발 이야기

Windows 7 Application 개발 - 2, Task Bar API

<정희재>

Windows 7 을 설치하고 나면 가장 먼저 눈에 띄는 것이 바로 화면의 가장 아래에 가로로 길게 뻗어있는 Taskbar일 것이다.

필자가 가장 먼저 알아차린 기존의 Windows들과의 차이점은 Taskbar가 차지하는 공간이 넓어진 것이었다. 하지만 사용을 하면 할수록 나도 모르게 Windows 7 의 Taskbar에 빠져들고 있음을 깨닫게 됨은 물론 Microsoft사의 사용자에 대한 배려를 옅볼 수 있게 되었다.


Windows 7 Taskbar에서 달라진 점들을 간단히 정리해 보면 다음과 같다.

  1. Thumbnail 기능



    해당 프로그램의 아이콘에 마우스를 위치시키면 해당 프로그램의 실행중인 화면의 Thumbnail을 추출하여 표시 해준다. 사용자는 Thumbnail을 확인하여 프로그램 활성화, 프로그램 종료 등의 작업을 일일이 프로그램을 열어보지 않고도 가능하게 해준다.

  2. Overlay Icons



    해당 프로그램의 상태에 따라 Taskbar에 표시되는 아이콘을 변경하여 사용자가 프로그램 창을 열어보지 않고도 한눈에 프로그램의 상태를 알아볼 수 있도록 해준다.

  3. Progress Bar



    Taskbar Icon에 Progress Bar를 적용할 수 있도록 지원하여 프로그램의 현재 진행상황을 다른 프로그램을 사용하면서도 확인이 가능하게끔 해준다.

  4. Thumbnail Toolbar



    Thumbnail 화면에 버튼을 추가하여 사용자가 프로그램을 띄우지 않고도 프로그램을 조작할 수 있도록 해준다.

  5. Jump List



    Taskbar 아이콘을 마우스 오른쪽 버튼으로 선택하면 Jump List를 화면에 출력하여 이전에 접근했던 파일들을 한번에 열어서 사용할 수 있도록 해준다.


ITaskBarList3
 

Windows7 Taskbar는 ITaskBarList3를 사용하여 접근이 가능하다.

ITaskBarList3 Instance를 생성하는 방법은 다음과 같다.  

ITaskbarList3* pTaskbarList;

HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pTaskbarList));

if (SUCCEEDED(hr))

{

    //

}


SetOverlayIcon

 Overlay Icon을 적용하기 위해서는 ITaskBarList3의 멤버함수인 SetOverlayIcon 함수를 사용하면 된다.

Overlay Icon으로 사용할 icon을 만들어 놓은 후 다음과 같이 SetOverlayIcon 함수를 호출하면 Taskbar에 Overlay Icon이 나타나는 것을 바로 확인할 수 있다.  

HICON hIcon = NULL;

hIcon = AfxGetApp()->LoadIcon(IDI_ICON1);

pTaskbarList->SetOverlayIcon(m_hWnd, hIcon, NULL);