我想在memo控件中的onMouseMove事件中获得鼠标所在的行数.
请问各位应该怎么做?

解决方案 »

  1.   

    Line:=Memo1.Perform(EM_CHARFROMPOS,0,MakeLParam(x,y)) shr 16;
      

  2.   

    查一下EM_CHARFROMPOS的帮助:An application sends an EM_CHARFROMPOS message to retrieve the zero-based character index and zero-based line index of the character nearest the specified point in an edit control.EM_CHARFROMPOS  
    wParam = 0; 
    lParam = MAKELPARAM(x, y) 
     ParametersxValue of the low-order word of lParam. Specifies the x-coordinate of a point in the edit control's client area. The coordinate is relative to the upper-left corner of the client area.yValue of the high-order word of lParam. Specifies the y-coordinate of a point in the edit control's client area. The coordinate is relative to the upper-left corner of the client area. Return ValuesThe return value specifies the character index in the low-order word and the line index in the high-order word. For single-line edit controls, the line index is always 0. The return value is the last character in the edit control if the given point is beyond the last character in the control. The return value is -1 if the specified point is outside the client area of the edit control.