|
저도 처음해보는건데 Column Header에도 ImageIndex를 적용할수 있네요
TListView에 Images를 하나 걸어놓구요
ColumnClick 이벤트에서 Caption을 변경하지 말고 ImageIndex를 변경하시면 됩니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
ListView1->SmallImages=ImgLst_Icons;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
TListColumn *Column)
{
for(int c=0;c<ListView1->Columns->Count;c++)
{
if(ListView1->Columns->Items[c]==Column)
{
Column->Tag=(Column->Tag)?0:1;
if(Column->Tag)
ListView1->Columns->Items[c]->ImageIndex =0;
else
ListView1->Columns->Items[c]->ImageIndex =1;
}
else
{
ListView1->Columns->Items[c]->ImageIndex=-1;
}
}
}
//----------------------------------------------------------------
이것도 맘에 안들고 또 다른 방법을 찾고자 하시면...
ColumnHeader는 SysHeader32 라는 놈인데 이놈을 찾아서
SubClassing하여 WM_PAINT 메세지에
직접 SysHeader32 의 DC에 원하는 이미지나 Text를 Draw해주시면 됩니다.
그럼...
해바라기 님이 쓰신 글 :
: 아. 그런방법이 있었군요 ^ㅡ^;;
:
: 답변 감사합니다.
:
: 근데 ▲ 이건 너무 크고 안예쁜데.. 좀 예쁘게 만드는 방법은 없을까요..?
:
: ==============================================================================
: 장호 님이 쓰신 글 :
: : 그냥 간단한 방법으로
: : Column 의 Header를 변경하시면 됩니다.
: :
: : String sColHeader[3]={"번호","내용","비고"};
: :
: : void __fastcall TForm1::ListView1ColumnClick(TObject *Sender,
: : TListColumn *Column)
: : {
: : for(int c=0;c<ListView1->Columns->Count;c++)
: : {
: : if(ListView1->Columns->Items[c]==Column)
: : {
: : Column->Tag=(Column->Tag)?0:1;
: : if(Column->Tag)
: : ListView1->Columns->Items[c]->Caption=sColHeader[c]+" ▼";
: : else
: : ListView1->Columns->Items[c]->Caption=sColHeader[c]+" ▲";
: : }
: : else
: : {
: : ListView1->Columns->Items[c]->Caption=sColHeader[c];
: : }
: : }
: : }
: : //---------------------------------------------------------------------------
: :
: :
: :
: : 해바라기 님이 쓰신 글 :
: : : 안녕하세요-
: : :
: : : ListView Sort 를 구현했는데요..
: : :
: : : 컬럼헤더에 ▼ / ▲ 이런 모양을 넣고 싶은데..
: : :
: : : 어떻게 해야할지 모르겠어요.. 살짝 알려주시면 감사하겠습니다 (__)
|