Windows 7 Taskbar Extensions Progress 은
Winodws 7 에서 새로 생긴 UI 입니다.
이것에 관한 정보와 관련된 여러 가지 정보를 보실려면
아래의 링크를 참조 하시기 바랍니다.
http://msdn.microsoft.com/ko-kr/library/dd378460(v=VS.85).aspx
링크를 보시면 Taskbar Extensions 은 Progress 만 있는게 아니고,
그 밖에 여러 가지가 있습니다만, 여기서는 제목 그대로
Progress 만 가지고 해보겠습니다.
구현 방법은 아주 간단 합니다.
CoCreateInstance 로 ITaskbarList3 Interface 에 할당 받은 다음
SetProgressState 와 SetProgressValue 만 가지고 구현 합니다.
CoCreateInstance 는 COM 개발을 해보신분은 한번에 알아 보실겁니다.
CoCreateInstance에 관한 정보는 아래와 같습니다.
http://msdn.microsoft.com/ko-kr/library/ms686615(v=VS.85).aspx
그리고 ITaskbarList3 Interface 에 관한 정보는 아래와 같습니다.
http://msdn.microsoft.com/ko-kr/library/dd391692(v=VS.85).aspx
ITaskbarList3 Interface 를 보시면 Progress 말고도 여러가지
기능이 있습니다. 관심 있으신 분은 자세히 살펴 보시기 바랍니다.
구현해 보도록 해보겠습니다.
// CoCreateInstance Declared in objbase.h.
// ITaskbarList3 Declared in Shobjidl.h
// 1. ITaskbarList3 Interface 할당 받는다.
bool IsTaskbar = false;
ITaskbarList3 *Taskbar;
if( CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&Taskbar)) == S_OK ){
IsTaskbar = true;
// 2. SetProgressState 로 Progress 상태를 지정한다.
Taskbar->SetProgressState(this->Handle, TBPFLAG::TBPF_INDETERMINATE);
// 3. SetProgressValue 로 Taskbar 에 실제로 그린다.
if(IsTaskbar)Taskbar->SetProgressValue(this->Handle,50,100);
}
if(IsTaskbar)Taskbar->Release();
이상 입니다....
|