당신은 메모에 보낸 메시지를 모두 잡기 위해 런타임에 메모의
WindowProc
속성을 하위 클래스
예 :
private:
TWndMethod PrevMemoWndProc;
void __fastcall MemoWndProc(TMessage &Message);
__fastcall TMyForm::TMyForm(TComponent *Owner)
: TForm(Owner)
{
PrevMemoWndProc = Memo1->WindowProc;
Memo1->WindowProc = MemoWndProc;
}
void __fastcall TMyForm::MemoWndProc(TMessage &Message)
{
switch (Message.Msg)
{
case CN_COMMAND:
{
switch (reinterpret_cast<TWMCommand&>(Message).NotifyCode)
{
case EN_VSCROLL:
{
//...
break;
}
case EN_HSCROLL:
{
//...
break;
}
}
break;
}
case WM_HSCROLL:
{
//...
break;
}
case WM_VSCROLL:
{
//...
break;
}
}
PrevMemoWndProc(Message);
}
AFAICT, 자신의 자손을 작성하고'WM_VSCROLL' 및'WM_HSCROLL' 메시지를 잡기 위해'WndProc'를 오버라이드해야하고, 그 (것)들에 응하여 당신이 필요로하는 것을하십시오. –
@KenWhite, 이것은 델파이 애플리케이션이 아닙니다 ... 태그를 다시 변경했습니다. –
태그가 처음에는 델파이가 아니라고 표시하지 않았습니다. VCL은 단순히 델파이 라고만 말했습니다. 대답은 똑같습니다. –