임펠리테리님의 답변 감사드립니다.
근데 저는 확실히 감히 잡히질 않아서 추가로 질문 드립니다.
임펠리테리님께서 WM_ERASEBKGND 메시지를 가로채서 컬럼영역이 아닌 부분을
칠하려고 다음과 같은 코드를 사용하였는데...아무것도 그려지지가 않아서요.
왜 그런지 이유를 알고싶습니다.
제가 작성한 컴포넌트 소스의 헤더에서 위 메시지를 가로채기 위해서 다음의
코드를 넣었구요
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ERASEBKGND, TMessage, Test)
END_MESSAGE_MAP(TListView)
소스의 구현 파일에서 Test함수의 소스를 다음과 같이 주었습니다.
void __fastcall TMyListView::Test(TMessage &Msg)
{
TListView::Dispatch(&Msg);
TCanvas *TmpCanvas;
TmpCanvas= new TCanvas();
TmpCanvas->Handle= (HDC *)Msg.WParam;
TmpCanvas->Brush->Color= clRed;
TRect DrawRect;
DrawRect.Left= 0;
DrawRect.Top= 0;
DrawRect.Right= 16;
DrawRect.Bottom= 16;
// ??? 왜 이부분이 그려지지 않을까요...
TmpCanvas->FillRect(DrawRect);
delete TmpCanvas;
}
음...제 실력으로서는 도대체 이해가 않가서요.
부탁드립니다.
읽어주셔서 감사합니다.
즐거운 통신이 되시길...
|