TRichEdit右键滚屏代码
void __fastcall TMainForm::RichEditMouseMove(TObject *Sender,TShiftState Shift, int X, int Y)
{
if(RightButtonFlag)
{
if(RightY>(Y+8))
{
RightY=Y;
SendMessage(RichEdit->Handle, EM_SCROLL, SB_LINEDOWN, 0);
}
else if(RightY<(Y-8))
{
RightY=Y;
SendMessage(RichEdit->Handle, EM_SCROLL, SB_LINEUP, 0);
}
RichEditDragFlag=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RichEditMouseDown(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(Button==mbRight)
{
RightButtonFlag=true;
Screen->Cursor=crHandPoint;
RightX=X;
RightY=Y;
SetCapture(RichEdit->Handle);
}
else
RightButtonFlag=false;
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::RichEditMouseUp(TObject *Sender,TMouseButton Button, TShiftState Shift, int X, int Y)
{
if(RightButtonFlag)
ReleaseCapture();
if(RichEditDragFlag)
{
RightButtonFlag=false;
RichEditDragFlag=false;
Screen->Cursor=crDefault;
RichEdit->PopupMenu=NULL;
}
else
{
RichEdit->PopupMenu=RichEditPopupMenu;
}
}