RichTextBox的右鍵功能

字號(hào):

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;
    }
    }
    //---------------------------------------------------------------------------