ListView에서 특정이미지 흐리게 보이기 (탐색기의 Hidden파일 처럼 처리하기)
예전에 제가 Q/A란에 질문했었던 내용입니다.
탐색기에서 Hidden파일/폴더인경우
아이콘이미지가 다른아이콘이미지들과 달리 흐리게 나타나는것을 볼 수 있을겁니다.
이러한 효과를 주기위한 방법입니다.
1. ListView의 CustomDraw에서 아래의 아이콘이미지를 별도로 그려주는 처리를 합니다.
void __fastcall TForm1::ListView1CustomDraw(TCustomListView *Sender,
const TRect &ARect, bool &DefaultDraw)
{
...
}
2. ListView의 해당 Item의 ImageIndex를 -1로 설정합니다.
ListView1->Items->Item[번호]->ImageIndex=-1;
=> 아이콘을 없애줍니다.
3. 해당Item의 Left,Top위치를 저장합니다.
X=ListView1->Items->Item[번호]->Left;
Y=ListView1->Items->Item[번호]->Top;
4. ImageList의 DrawingStyle을 dsSelected로 바꿉니다.(Blending 50%)
ImageList1->DrawingStyle=dsSelected;
5. ImageList의 BlendColor를 ListView의 Brush Color로 지정합니다.
ImageList1->BlendColor=ListView1->Canvas->Brush->Color;
6. ImageList의 Draw를 사용하여 ListView에 그려줍니다.
ImageList1->Draw(ListView1->Canvas,X,Y,아이콘번호,true);
=> Blending 50%로 아이콘이미지를 흐리게 그려줍니다.
|