C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[50490] Re:Re:Re:ListView에 ▼ / ▲ 이런 모양 넣기 - ImageIndex를 이용해서..
장성호 [nasilso] 1487 읽음    2007-09-06 15:53
저도 처음해보는건데 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 를 구현했는데요..
: : :
: : : 컬럼헤더에 ▼ / ▲ 이런 모양을 넣고 싶은데..
: : :
: : : 어떻게 해야할지 모르겠어요.. 살짝 알려주시면 감사하겠습니다 (__)

+ -

관련 글 리스트
50482 ListView에 ▼ / ▲ 이런 모양 넣기! 해바라기 1219 2007/09/06
50483     Re:ListView에 ▼ / ▲ 이런 모양 넣기! 장성호 1500 2007/09/06
50485         Re:Re:ListView에 ▼ / ▲ 이런 모양 넣기! 해바라기 1317 2007/09/06
50490             Re:Re:Re:ListView에 ▼ / ▲ 이런 모양 넣기 - ImageIndex를 이용해서.. 장성호 1487 2007/09/06
50491                 Re:Re:Re:Re:ListView에 ▼ / ▲ 이런 모양 넣기 - ImageIndex를 이용해서.. 해바라기 1512 2007/09/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.