古詩詞大全網 - 成語解釋 - 為CTreeCtrl類添加壹個圖象列表類CImageList對象m_ImageList 這句話什麽意思啊?

為CTreeCtrl類添加壹個圖象列表類CImageList對象m_ImageList 這句話什麽意思啊?

1.初始化CImageList、設置圖像列表

成員函數:

CImageList::Create

CTreeCtrl::SetImageList

示例:

BOOL CMfc1Dlg::OnInitDialog(){

//...

m_iml.Create(16,16,ILC_COLOR16 | ILC_MASK,20,20);

m_Tree.SetImageList(&m_iml,TVSIL_NORMAL);

}

2.向樹視圖中添加窗口列表

成員函數:

CImageList::Replace

CTreeCtrl::InsertItem

示例:

int i=0;

HWND hDesktop=::GetDesktopWindow();

HWND hWnd=::GetWindow(hDesktop,GW_CHILD);

TCHAR sTitle[MAX_PATH];

HICON hIcon;

BOOL bShow=TRUE;

LONG idx;

while ( i<1000 && hWnd!=NULL ) {

bShow=TRUE;

if (!::GetWindowTextLength(hWnd)) bShow=FALSE;

if (!::IsWindowEnabled(hWnd)) bShow=FALSE;

if (!::IsWindowVisible(hWnd)) bShow=FALSE;

if (!::GetWindow(hWnd,GW_CHILD)) bShow=FALSE;

if (bShow) {

::GetWindowText(hWnd,sTitle,MAX_PATH);

hIcon=(HICON)::SendMessage(hWnd,WM_GETICON,ICON_SMALL,NULL);

if ((LONG)hIcon==NULL)

hIcon=(HICON)::SendMessage(hWnd,WM_GETICON,ICON_BIG,NULL);

if ((LONG)hIcon==NULL)

hIcon=m_hIcon;

idx=m_iml.Replace(-1,hIcon);

m_Tree.InsertItem(sTitle,idx,idx);

}

hWnd=::GetWindow(hWnd,GW_HWNDNEXT);

++i;

}

源代碼mfc_study_2.zip(38KB)