CImageList Draw为何画不出图像来?
我想用CImageList保存位图,然后用Draw画出来?可是当Draw成功调用之后却画不出图像来?代码如下:
//以下代码在CDialog::OnInitDialog()中
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
ASSERT(m_ImageList.Create(32,32,ILC_MASK|ILC_COLOR,4,1));
ASSERT(m_ImageList.Add(&bmp,RGB(255,0,255)) != -1);
CDC * pDC = NULL;
ASSERT(pDC = GetDC());
ASSERT(m_ImageList.Draw(pDC,0,CPoint(0,0),ILD_TRANSPARENT));
ReleaseDC(pDC);
请高手赐教!!!!在线等等!
[解决办法]
HICON hIcon[8];
int n;
m_imageList.Create(16, 16, 0, 8, 8); // 32, 32 for large icons,
//m_imageList 为CImageList
hIcon[0] = AfxGetApp()-> LoadIcon(IDI_WHITE);
hIcon[1] = AfxGetApp()-> LoadIcon(IDI_BLACK);
hIcon[2] = AfxGetApp()-> LoadIcon(IDI_RED);
hIcon[3] = AfxGetApp()-> LoadIcon(IDI_BLUE);
hIcon[4] = AfxGetApp()-> LoadIcon(IDI_YELLOW);
hIcon[5] = AfxGetApp()-> LoadIcon(IDI_CYAN);
hIcon[6] = AfxGetApp()-> LoadIcon(IDI_PURPLE);
hIcon[7] = AfxGetApp()-> LoadIcon(IDI_GREEN);
for (n = 0; n < 8; n++) {
m_imageList.Add(hIcon[n]);
}
CTreeCtrl* pTree = (CTreeCtrl*) GetDlgItem(IDC_TREEVIEW1);
pTree-> SetImageList(&m_imageList, TVSIL_NORMAL);
// tree structure common values
TV_INSERTSTRUCT tvinsert;
tvinsert.hParent = NULL;
tvinsert.hInsertAfter = TVI_LAST;
tvinsert.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE |
TVIF_TEXT;
tvinsert.item.hItem = NULL;
tvinsert.item.state = 0;
tvinsert.item.stateMask = 0;
tvinsert.item.cchTextMax = 6;
tvinsert.item.iSelectedImage = 1;
tvinsert.item.cChildren = 0;
tvinsert.item.lParam = 0;
// top level
tvinsert.item.pszText = "Homer ";
tvinsert.item.iImage = 2;
HTREEITEM hDad = pTree-> InsertItem(&tvinsert);
tvinsert.item.pszText = "Marge ";
HTREEITEM hMom = pTree-> InsertItem(&tvinsert);
// second level
tvinsert.hParent = hDad;
tvinsert.item.pszText = "Bart ";
tvinsert.item.iImage = 3;
pTree-> InsertItem(&tvinsert);
tvinsert.item.pszText = "Lisa ";
pTree-> InsertItem(&tvinsert);
// second level
tvinsert.hParent = hMom;
tvinsert.item.pszText = "Bart ";
tvinsert.item.iImage = 4;
pTree-> InsertItem(&tvinsert);
tvinsert.item.pszText = "Lisa ";
pTree-> InsertItem(&tvinsert);
tvinsert.item.pszText = "Dilbert ";
HTREEITEM hOther = pTree-> InsertItem(&tvinsert);
// third level
tvinsert.hParent = hOther;
tvinsert.item.pszText = "Dogbert ";
tvinsert.item.iImage = 7;
pTree-> InsertItem(&tvinsert);
tvinsert.item.pszText = "Ratbert ";
pTree-> InsertItem(&tvinsert);
[解决办法]
在OnPaint中绘图。