Q&A

  • Tmemo에 마우스 오른쪽 클릭했을때요..
Tmemo에 마우스 오른쪽 클릭했을때요.. 자체적으로 popup메뉴가 나오는데
그걸 막고 싶습니다. 알고 계시는 분께서는 알려주시면 많은 도움이 될꺼 같네요..
4  COMMENTS
  • Profile
    최용일 2007.05.19 05:37
    안녕하세요. 최용일입니다.

    메모의 Window Procedure를 서브클래싱해서 WM_CONTEXTMENU메시지를 무효화시키시면 됩니다.

    ^^ 항상 즐코하세요.

  • Profile
    김세령 2007.05.19 19:13
    우선 답변에 대해 너무 감사 합니다... 근데
    제가 델파이 아직 초보라.. 알려주신거에 대해 이해가 잘 않되는데요..
    혹시 말씀하신거에 대해 쪼금만더 자세히 설명을 해주시면 감사하겠습니다.
    아니면 관련 예제라도... 올려주시면 너무 감사하겠습니다.




  • Profile
    최용일 2007.05.19 20:00
    <!--CodeS-->
    type
      TForm1 = class(TForm)
        .......
        Memo1: TMemo;
      private
        fOrgMemoWndProc: TWndMethod;
      protected
        procedure MemoWndProc(var WndMsg: TMessage);
      public
        constructor Create(AOwner: TComponent); override;
        destructor Destroy; override;
      end;

    implementation

    ......

    constructor TForm1.Create(AOwner: TComponent);
    begin
      inherited;

      fOrgMemoWndProc := Memo1.WindowProc;
      Memo1.WindowProc := MemoWndProc;
    end;

    destructor TForm1.Destroy;
    begin
      Memo1.WindowProc := fOrgMemoWndProc;

      inherited;
    end;

    procedure TForm1.MemoWndProc(var WndMsg: TMessage);
    begin
      if WndMsg.Msg = WM_CONTEXTMENU then
        WndMsg.Result := 0
      else
        fOrgMemoWndProc(WndMsg);
    end;

    <!--CodeE-->

  • Profile
    김세령 2007.05.19 21:03
    정말 감사 합니다. 이기회에 많은걸 배워가네요^^
    좋은 하루 되시고요~ 좋은 자료 감사합니다.