如何获取当前光标位置

偶像罗斯福 2007-10-16 09:15:59
我指的光标不时鼠标。
顺便问一下如何设置光标的位置,我用SetCursorPos()为什么不起作用。最要能给我一个现成的例子
谢谢了
...全文
551 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
偶像罗斯福 2007-10-16
  • 打赏
  • 举报
回复
Mr_Stone :是在CEditView中
wjkgz 2007-10-16
  • 打赏
  • 举报
回复
得到光标的行数、列数,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;//列数
raptormk16 2007-10-16
  • 打赏
  • 举报
回复
LZ没有MSDN?
Mr_Stone 2007-10-16
  • 打赏
  • 举报
回复
不知道你是指在什么控件里的光标,如果是在文本框或rich edit中,可以用EM_SETSEL消息试试。
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
偶像罗斯福 2007-10-16
  • 打赏
  • 举报
回复
那获取当前光标位置那
GetCursorPos()?
怎么用阿?
  • 打赏
  • 举报
回复
SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。

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

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧