TListView
10.08.1999
  • Dodawanie bitmap do nagłówka TListView.

       Dodawanie bitmap do nagłówka nie jest takie trudne, a poniższy sposób jest wybierany częściej niż tworzenie nagłówka typu OwnerDrawn, ponieważ jest łatwiejszy.

//------------------------------------------------------ 
//w pliku źródłowym
//------------------------------------------------------ 

__fastcall TForm1::TForm1(TComponent* Owner)  
 : TForm(Owner)  
{  
    //Uchwyt do nagłówka 
    HWND HeaderHandle = GetDlgItem(ListView1->Handle, 0); 

    //struktura pozycji nagłówka
    HD_ITEM hdi; 

    for (int index = 0;
	            index < ListView1->Columns->Count; index++) 
    { 
        //Pobiera aktualny format
        Header_GetItem(HeaderHandle, index, &hdi); 

        hdi.mask = HDI_TEXT | HDI_FORMAT | HDI_BITMAP | HDI_WIDTH; 

   //dodaje flagę bitmapy
hdi.fmt = hdi.fmt | HDF_LEFT | HDF_BITMAP | HDF_STRING; 
hdi.pszText = ListView1->Columns->Items[index]->Caption.c_str(); 
hdi.cchTextMax = ListView1->Columns->Items[index]->Caption.Length(); 
hdi.cxy = ListView1->Columns->Items[index]->Width; 
         
  switch(index) 
       { 
       case 0: hdi.hbm = Image1->Picture->Bitmap->Handle; 
             break; 
       default: hdi.hbm = Image2->Picture->Bitmap->Handle; 
              break; 
       } 

        //Wymusza zmiany
        Header_SetItem(HeaderHandle, index, &hdi); 
    } 
}  

       Jeżeli chcesz umieścić większą bitmapę, to zmień wielkość fontu. Natomiast jeżeli chcesz mały font i dużą bitmapę, to umieść napis w bitmapie...