CListCtrl图标设置

来源:互联网 发布:dev c 编程 编辑:程序博客网 时间:2024/04/19 07:11
  1. m_ctrlSearch.InsertColumn(0, "议表项目", LVCFMT_CENTER | LVCFMT_IMAGE, 65);
  2. m_pObj = pobj;
  3. m_nCtrlNumber = max;
  4. m_pHistoryView->InitSearchFlag(max);
  5. CDC *pDC = GetDC();
  6. CDC dcMem;
  7. m_ilHeadIcon.Create(16, 16, ILC_COLOR24 | ILC_MASK, max, 1);
  8. CBitmap bm;
  9. dcMem.CreateCompatibleDC(NULL);
  10. bm.DeleteObject();
  11. if (bm.CreateCompatibleBitmap(pDC, 16 * max, 16))
  12. {
  13.  CBitmap *pOldBitmap = dcMem.SelectObject(&bm);
  14.  RECT rect;
  15.  rect.left = 0; rect.right = 16; rect.top = 0; rect.bottom = 16;
  16.  for (int j = 0; j < max; j++)
  17.  {
  18.   rect.left = j * 16;
  19.   rect.right = (j + 1) * 16;
  20.   COLORREF clr = RGB(0, 0, 0);
  21.   switch (j%3)
  22.   {
  23.    case 0: clr = RGB(125, 0, 0); break;
  24.    case 1: clr = RGB(0, 125, 0); break;
  25.    case 2: clr = RGB(0, 0, 125); break;
  26.    default: clr = RGB(125, 125, 125); break;
  27.   }
  28.   m_clrIcon.push_back(clr);
  29.   dcMem.FillSolidRect(j * 16, 0, 16, 16, clr);
  30.  }
  31.  dcMem.SelectObject(pOldBitmap);
  32.  dcMem.DeleteDC();
  33.  m_ilHeadIcon.Add(&bm, RGB(100,100,100));
  34.  m_ctrlSearch.SetImageList(&m_ilHeadIcon, LVSIL_SMALL);
  35.  m_ctrlSearch.SetVectorClrLink(&m_clrIcon);
  36.  bm.Detach();
  37. }
  38. for (int i = 0; i < max; i++)
  39. {
  40.  LV_ITEM   lvitemAdd = {0};
  41.  lvitemAdd.mask = LVIF_TEXT|LVIF_IMAGE|LVIF_PARAM;
  42.  lvitemAdd.iItem = i ;
  43.  lvitemAdd.iSubItem = 0;
  44.  lvitemAdd.pszText = m_pObj[i].name.GetBuffer(0);
  45.  m_pObj[i].name.ReleaseBuffer();
  46.  lvitemAdd.iImage = i;
  47.  lvitemAdd.lParam = (LPARAM)this->m_hWnd;
  48.  m_ctrlSearch.InsertItem(&lvitemAdd);
  49.  m_ctrlSearch.SetItemData(i, i);
  50. }
原创粉丝点击