ListControl / CImageList a wczytanie *.bmp

0

Temat zakładek i użycia pliku bitmapy odczytanego z pliku z HDD a nie z "resource" - zasobów.

Mam problem (chyba) z paletą kolorów - kompatybilnością z kolorami aktualnego kontekstu.
Do kontrolki TabControl w pierwszej kolumnie dodaje "tekst" oraz bitmapę. Jednak kolory bitmapy są nie te (niezgodne z oryginałem bitmapy). Robię tak:

deklaracje w pliku: CMyDlg.h

CImageList CMyList;

CBitmap m_bmpBitmapa;
HBITMAP hBitmapa;


w CMyDlg::InitDialog()

     CMyList.Create(::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON),
                ILC_COLOR | ILC_MASK, 0, 0);
     hBitmapa = (HBITMAP) ::LoadImage(AfxGetInstanceHandle(),
  			"C:\TestImg.bmp", IMAGE_BITMAP, 0, 0, 
  			LR_LOADFROMFILE | LR_CREATEDIBSECTION);
     if (m_bmpBitmapa.DeleteObject()) m_bmpBitmapa.Detach();
     m_bmpBitmapa.Attach(hBitmapa);

     CMyList.Add(&m_bmpBitmapa, RGB(255,0,255));

w procedurze obsługi TabControl:

         CMyDlg *Cmoj = (CMyDlg*) GetParent(); //wskażnik do wyższej klasy

         m_cLista.SetImageList(&Cmoj->CMyList,LVSIL_SMALL);  //Member Variable dla CListCtrl

         m_cLista.InsertItem(0,"pierwszy",0);

Zapewne należy uzyć jakoś CreateCompatibleXXXXXX, no ale jak :-O

0

pewnie w tworzeniu listy obrazkow jest blad(no nie blad) zamiast ILC_COLOR daj ILC_COLOR32 bo domyslnie ILC_COLOR wskazuje na ILC_COLOR4.

0

Pomogło - dziękuję.

A tego się nie spodziewałem.... :-)

0

Widziałem w kolumnach obok nazw tych kolumn bmp czy ikony, głównie w celu pokazania kierunku sortowania - mini strzałki:

CMyList.Add(::AfxGetApp()->LoadIcon(IDI_AZ));

LVCOLUMN lvColumn;

m_cLista.GetColumn(nSortColumn, &lvColumn );
lvColumn.mask = LVCF_FMT | LVCF_TEXT | LVCF_WIDTH | LVCF_IMAGE;
lvColumn.fmt = LVCFMT_LEFT | LVCFMT_IMAGE | LVCFMT_BITMAP_ON_RIGHT;
lvColumn.cx = SzerKolumna[nSortColumn];
lvColumn.pszText = NameKolumna[nSortColumn];
lvColumn.iImage = 0;
m_cLista.SetColumn(nSortColumn, &lvColumn );

Tylko, że nie mogę ustawić koloru transparentnego?

PS. Obiekty to *.ico 32x32x24bpp - zmiana rodzielczości i ilość kolorów nie pomaga

1 użytkowników online, w tym zalogowanych: 0, gości: 1