zoukankan      html  css  js  c++  java
  • delphi中获取memo鼠标所在位置的行和列(通过EM_GETRECT消息取得Rect后,自己算一下)

    也是看别人写的,但是不容易找到,就转发一篇delphi版本的

    function GetLine(X, Y: integer): TPoint;
    var
      OldFont : HFont;
      Hand : THandle;
      TM : TTextMetric;
      Rect : TRect;
    begin
      Hand := GetDC(mmotest.Handle);
      try
        OldFont := SelectObject(Hand, mmotest.Font.Handle);
        try
          GetTextMetrics(Hand, TM);
          mmotest.Perform(EM_GETRECT, 0, longint(@Rect));
          Result.Y:= GetScrollPos( mmotest.Handle, SB_VERT ) +
                     (Y - Rect.Top) div (TM.tmHeight);
          Result.X:= (X - Rect.Left) div (TM.tmHeight);
          
          ShowMessage( IntToStr( Result.X ) + ',' + IntToStr( Result.Y ) );
        finally
          SelectObject(Hand, OldFont);
        end;
      finally
        ReleaseDC(mmotest.Handle, Hand);
      end;
    end;

    procedure TF_Main.mmotestMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
      GetLine( x, y );
    end;

    http://blog.csdn.net/youthon/article/details/5781995

  • 相关阅读:
    3.1.3、控制结构
    3.1.2、变量
    3.1.1、渲染模板
    3.1、Jinja2模板引擎
    第3章 模板
    2.6、Flask扩展
    2.5.4、响应
    2.5.3、请求钩子
    2.5.2、请求调度
    2.5.1、程序和请求上下文
  • 原文地址:https://www.cnblogs.com/findumars/p/7230767.html
Copyright © 2011-2022 走看看