|
공님 님이 쓰신 글 :
: ListView에서 홀수번째의 row와 짝수번째의 row를 다른 색으로 넣고 싶습니다.
: 델파이 소스는 있던데 C로 변환하는 과정에서 계속 에러가 나오네요.
: 홈지기님이 해결좀 해주세요.
: CanVas를 이용하는 것 같던데 잘 모르겟네요. 좀 급하걸랑요. 부탁합니당~~
임펠리테리입니다.
왜 그런 효과가 필요한지 좀 이해가 안됩니다만.. 테스트삼아 실제로 해보니 별로 보기가 안좋네요. 어쨌든 다음과 같이 하시면 됩니다.
먼저 리스트뷰의 OwnerDraw 속성을 true로 세팅해준 후, 리스트뷰의 OnDrawItem 이벤트의 핸들러를 다음과 같이 작성하세요.
void __fastcall TForm1::ListView1DrawItem(TCustomListView *Sender,
TListItem *Item, TRect &Rect, TOwnerDrawState State)
{
if(State.Contains(odSelected))
{
ListView1->Canvas->Brush->Color = clNavy;
ListView1->Canvas->Font->Color = clWhite;
}
else
{
if(Item->Index / 2 * 2 == Item->Index)
ListView1->Canvas->Brush->Color = clGray;
else
ListView1->Canvas->Brush->Color = clSilver;
ListView1->Canvas->Font->Color = clBlack;
}
ListView1->Canvas->TextRect(Rect, Rect.left+4, Rect.top, Item->Caption);
if(State.Contains(odFocused))
ListView1->Canvas->DrawFocusRect(Rect);
}
위에서는 보시다시피 홀/짝수 열마다 clGray, clSilver 컬러를 배경으로 주었습니다.
그럼 참고하시길...
|