这里有两种方式获取光标的位置!

本篇博文只能获取有句柄的光标的位置,比如LineEdit,记事本等。

像VS编辑框,IE里面的输入框,目前是找不到句柄的,获取不到光标

程序运行截图如下:

这里要介绍几个API

GetFocus():获取当前聚焦的句柄;

GetForegroundWindow():获取当前应用程序的窗口句柄,可以说是聚焦句柄的外部;

AttachThreadInput():将一个线程的输入处理机制附加或分离到另一个线程的输入处理机制;

GetCaretPos():获取插入标记的位置;

ClientToScreen():将位置转为屏幕坐标;

getGUIThreadInfo():功能检索有关的活动窗口或指定的图形用户界面(GUI)线程的信息。

源码如下:

#include<iostream>
#include<windows.h>
#include<winuser.h>
using namespace std;int main()
{while(true) {POINT point;HWND hwnd = ::GetFocus();HWND pHwnd = ::GetForegroundWindow();if (AttachThreadInput(GetCurrentThreadId(), GetWindowThreadProcessId(pHwnd, NULL), TRUE)) {if (GetCaretPos(&point)) {ClientToScreen(hwnd, &point);cout << "WAY 1 :    " << "HWND:" << hwnd << "  " << "x:" << point.x << " y:" << point.y << endl;}}Sleep(1000);GUITHREADINFO pg;POINT point2;pg.cbSize = 48;GetGUIThreadInfo(GetWindowThreadProcessId(pHwnd, NULL), &pg);//GetGUIThreadInfo功能检索有关的活动窗口或指定的图形用户界面(GUI)线程的信息。       hwnd = pg.hwndCaret;//显示插入符的窗口句柄    if (pg.hwndCaret){point2.x = pg.rcCaret.right;//rcCaret:一个RECT结构,描写插入符的界限矩形,在客户区坐标,相对hwndCaret成员指定的窗口 point2.y = pg.rcCaret.bottom;::ClientToScreen(pg.hwndCaret, &point2);//转换成相对于屏幕的坐标   cout << "WAY 2:      " << point2.x << "  " << point2.y << endl;}}return 0;
}

C++笔记-获取光标(非鼠标坐标)在屏幕的位置相关推荐

  1. WPF中获取鼠标相对于屏幕的位置

    WPF中获取鼠标相对于屏幕的位置                                   周银辉 WPF编程时,我们经常使用Mouse.GetPosition(IInputElement ...

  2. AHK 键盘控制鼠标点击屏幕不同位置

    按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...

  3. C++获取、设置鼠标坐标并移动鼠标

    CPoint point; GetCursorPos(&point); //获取鼠标位置 SetCursorPos(100, 100); //设置鼠标位置 //mouse_event(MOUS ...

  4. javascript 获取光标所选中的内容并插入到另一个文本框中(兼容ie和ff)

    项目中正好用到 做下笔记方便以后查找 ie获取光标的位置使用document.selection.createRange() 火狐下使用document.getElementById(id).sele ...

  5. js 获取鼠标在画布的位置_JS获取鼠标位置(鼠标坐标)

    在 JavaScript 中,当事件发生时,获取鼠标的位置是件很重要的事件.由于浏览器的不兼容性,不同浏览器分别在各自事件对象中定义了不同的属性,说明如下表所示.这些属性都是以像素值定义了鼠标指针的坐 ...

  6. 最全的获取鼠标坐标的方法

    今天给朋友们分享js获取鼠标坐标的最全方法集合: HTML.CSS与JS代码如下: <!DOCTYPE HTML> <html lang="zh-cn"> ...

  7. Java实现桌面鼠标坐标获取

    Java自动化开发中使用Robot,有时候需要获取桌面坐标,为了方便获取坐标,用代码实现后直接打包成exe文件方便以后使用. 链接:https://pan.baidu.com/s/1oQcWcbe1h ...

  8. C++获取鼠标坐标并移动鼠标

    原文章地址: C++获取鼠标坐标并移动鼠标 公司电脑强制设定10分钟无鼠标键盘输入便锁屏,锁屏之后要重新输入密码太麻烦.代码自动检测过去4.9分钟内鼠标是否发生了移动,如果没有发生移动则移动鼠标位置. ...

  9. html5 js获取鼠标坐标,js怎么获取鼠标在div中的相对位置

    大家在做网页的时候都可能会用到鼠标在div中的相对位置,那么怎么获取鼠标在div中的相对位置呢?下面由学习啦小编教大家怎么获取鼠标在div中的相对位置吧. 如何获取鼠标在div中的相对位置 代码如下: ...

最新文章

  1. css :after或:before写小三角形
  2. Google App Engine 的简易教程(转载)
  3. 在CSDN中增加图片版权保护的方法
  4. WPF Bitmap转BitmapSource,Image
  5. 【数据结构与算法】AVL树的Java实现
  6. re矩阵论_矩阵论 [张凯院,徐仲 等编著] 2013年版
  7. 学习JavaScript原型应用
  8. BZOJ3456: 城市规划 多项式求逆
  9. 网页游戏用的什么编程语言
  10. MSP430F149的看门狗定时器
  11. NOTA-NHS ester,1338231-09-6,双功能配体的大环化合物
  12. android rgb接口,Android RGB颜色查询对照表
  13. 教学ppt设计与制作
  14. 知识碎片 || 计算机性能指标之【CPU主频”】
  15. Hive之——Hive分区(静态分区+动态分区)
  16. cmd命令进行U盘分区
  17. 分享个好用的开源录屏工具 Captura
  18. 华三交换机设置telnet登录
  19. dundas chart
  20. c语言农场,C语言课程设计《开心农场》源码公开

热门文章

  1. ckeditor与ckfinder的使用方法 .NET (转载)
  2. 互联网运营遇到瓶颈?这套数据运营体系,高手和小白都必看
  3. 今天的在一旁看电视的蜡笔小新
  4. 去掉xsl运行的飞鸽传书办法
  5. Visual Studio 调试器---Visual Studio 调试器
  6. 程序员如何接私单做SOHO一族
  7. 我,35岁,程序员,华为工作10年,上个月公司说不再续约
  8. 给1-3年的前端 6 点诚心建议
  9. D3.js、echar.js 前端必备大数据技能
  10. rsync配置和使用