如何获取当前光标位置

时间:2022-12-28 22:11:27
我指的光标不时鼠标。
顺便问一下如何设置光标的位置,我用SetCursorPos()为什么不起作用。最要能给我一个现成的例子
谢谢了

6 个解决方案

#1


SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。

    函数原型:BOOL SetCursorPos(int X,int Y);
    参数:
    X:指定光标的新的X坐标,以屏幕坐标表示。
    Y:指定光标的新的Y坐标,以屏幕坐标表示。
    返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
    备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
 

#2


那获取当前光标位置那
GetCursorPos()?
怎么用阿?

#3


不知道你是指在什么控件里的光标,如果是在文本框或rich edit中,可以用EM_SETSEL消息试试。
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);

#4


LZ没有MSDN?

#5


得到光标的行数、列数,hFocus为edit或richedit的HWND   
  int   LineIndex,LineNum,SelStar,ColNum;   
  LineNum   =     ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数   
  LineIndex   =   ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);   
  SelStar   =   (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));   
  ColNum   =   SelStar   -   LineIndex;//列数

#6


Mr_Stone :是在CEditView中

#1


SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。

    函数原型:BOOL SetCursorPos(int X,int Y);
    参数:
    X:指定光标的新的X坐标,以屏幕坐标表示。
    Y:指定光标的新的Y坐标,以屏幕坐标表示。
    返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
    备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
 

#2


那获取当前光标位置那
GetCursorPos()?
怎么用阿?

#3


不知道你是指在什么控件里的光标,如果是在文本框或rich edit中,可以用EM_SETSEL消息试试。
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);

#4


LZ没有MSDN?

#5


得到光标的行数、列数,hFocus为edit或richedit的HWND   
  int   LineIndex,LineNum,SelStar,ColNum;   
  LineNum   =     ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数   
  LineIndex   =   ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);   
  SelStar   =   (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));   
  ColNum   =   SelStar   -   LineIndex;//列数

#6


Mr_Stone :是在CEditView中