易语言教程_易语言源码_易语言写挂_易语言论坛_看流星社区

 找回密码
 注册
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
零基础辅助入门教学 原创 高清 专业课程售后(每日解答)
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
赞助广告位 请点击这里联系站长 QQ20209081
查看: 133|回复: 0

获取光标位置方法研究

[复制链接]
发表于 2017-6-3 14:26:30 | 显示全部楼层 |阅读模式
获取光标位置方法研究
johnchen

获取光标位置可以使用GetCaretPos函数获取位置,也可以通过GetGUIThreadInfo函数获取位置。1、GetCaretPos函数获取光标位置,实现代码: CPoint point; CRect rect; GetWindowRect(&amp;rect); HWND hwnd=::GetFocus(); HWND pHwnd=::GetForegroundWindow(); AttachThreadInput(GetCurrentThreadId(),::GetWindowThreadProcessId(pHwnd,NULL),TRUE); ::GetCaretPos(&amp;point); ::ClientToScreen(hwnd,&amp;point); AttachThreadInput(GetCurrentThreadId(),::GetWindowThreadProcessId(pHwnd,NULL),FALSE);2、GetGUIThreadInfo函数获取光标位置,实现代码: #include <winable.h> HWND hwnd; GUITHREADINFO pg; POINT point;//光标位置 pg.cbSize=48; ::GetGUIThreadInfo(NULL,&amp;pg); hwnd=pg.hwndCaret; if (pg.hwndCaret) { point.x=pg.rcCaret.right; point.y=pg.rcCaret.bottom; ::ClientToScreen(pg.hwndCaret,&amp;point); }
//CString str; //str.Format("x=%d,y=%d",point.x,point.y); //AfxMessageBox(str);
总结:GetCaretPos函数能获取WIN32一些程序窗口中光标位置,但是在IE7和WORD里GetCaretPos是不能获取光标位置的。而GetGUIThreadInfo函数获取窗口坐标位置是没有限制,不过在VCL、GTK、SWT界面框架的窗口具体能不能得到位置没有试过。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|看流星社区  |网站地图

GMT+8, 2017-10-24 19:10 易语言论坛 易语言导航

Powered by 看流星社区 X3.2

©2011-2016 最好的辅助编程技术论坛

快速回复 返回顶部 返回列表