현재 작업중인 목록을 만들려면

현재 작업중인 목록을 만들려면
작업 관리자(Task Manager)는 최상위 단계 윈도우 목록을 출력하므로 이를 이용하면
됩니다. 단, 이 목록에 포함되는 윈도우는 화면에서 직접 볼 수 있어야 하지만 다른 창에
소유돼서는 안된다는 것에 유의하기 바랍니다. 최상위 윈도우의 목록을 읽으려면
CWnd::GetWndow()를 호출한 후 윈도우가 목록에 포함될 수 있는지의 여부를 확인하려고
CWnd의 메쏘드인 IsWindowVisible(), GetWindowTextLength(), GetOwner()를 부릅니다.
그런 다음 작업 관리 윈도우의 캡션을 목록상자에 채우면 됩니다. 방법은 다음과 같습니다.

void GetTaskList(CListBox& list)
CString strCaption; // 윈도우 캡션
list.ResetContent; // 리스트박스를 지운다.
//윈도우 목록에서 첫번째 윈도우를 구한다.
CWnd* pWnd=AfxGetMainWnd()->GetWindow(GW_HWNDFIRST);
//윈도우의 목록을 통해 확인한다.
while(pWnd) {
// 윈도우가 보이면 캡션을 갖지만 소유자를 갖지 않는지 확인한다.
if(pWnd->IsWindowVisible()&&
pWnd->GetWindowTextLength() && !pWnd->Getowner)) {
// 윈도우 캡션을 리스트박스에 추가한다.
pWnd->GetWindowText(strCaption);
List.AddString(strCaption);
}
// 윈도우 목록에서 다음 윈도우를 구한다.
pWnd = pWnd->GetWindow(GW_HWNDNEXT);
}
}

zemna

Programmer/Web/Mobile/Desktop

You may also like...

Leave a Reply