怎样获得系统光标位置。 有时在系统里打开记事本,有一个光标,打开百度网页,在搜索栏也有一个光标在闪烁请问怎样获得系统内任何一个窗口或网页上的的光标位置? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这段代码或许对你有帮助...HWND hWnd = ::GetFocus();int iID = ::GetDlgCtrlID(hWnd);//判断edit的句柄if(iID == IDC_EDIT1){ POINT point; //取得光标所在的位置 ::GetCaretPos(&point); //取得光标所在的字符index long lr = ::SendMessage(hWnd, EM_CHARFROMPOS, 0, MAKELPARAM(point.x, point.y)); char data[256]; //取得edit的内容 ::SendMessage(hWnd, WM_GETTEXT, (WPARAM)256, (LPARAM)data); char *result = new char[lr + 1]; //取得edit中光标之前的字符串 memcpy(result, data, lr); result[lr] = '\0'; ::MessageBox(NULL, result, "Test", 0); delete result; result = NULL; lr = 0;} 研究一下autohotkey,听说里面有你想要的东西 在公司同事的帮助下,终于搞定: HWND hwnd; GUITHREADINFO pg; POINT point; pg.cbSize=48; ::GetGUIThreadInfo(NULL,&pg);//GetGUIThreadInfo功能检索有关的活动窗口或指定的图形用户界面(GUI)线程的信息。 hwnd=pg.hwndCaret;//显示插入符的窗口句柄 if (pg.hwndCaret) { point.x=pg.rcCaret.right;//rcCaret:一个RECT结构,描述插入符的边界矩形,在客户区坐标,相对hwndCaret成员指定的窗口 point.y=pg.rcCaret.bottom; ::ClientToScreen(pg.hwndCaret,&point);//转换成相对于屏幕的坐标 } point即是光标在屏幕上的坐标。 用ShellExecute打开网页失败? mfc7.0发布问题 急问:如何产生一个8位数的随机数 关于GUI的 鼓鼓士气,来劫分了!呵呵!支持CSDN论坛! 怎么在excel里复制一段到下一页? 请问unsigned int nMsgType:8;后面的“:8”什么意思? 函数重载问题 各位大侠,求教 精典老dos游戏超级玛莉mario.exe如何修改人数? 请问我使用CFileFind获得文件信息,为什么有的文件信息是乱码? 一个VC开发activex代码能不能简单的改变名字和id成为另一个控件的问题 CFileDialog如何实现同时选择文件夹和文件(例如NERO)
HWND hWnd = ::GetFocus();
int iID = ::GetDlgCtrlID(hWnd);
//判断edit的句柄
if(iID == IDC_EDIT1)
{
POINT point;
//取得光标所在的位置
::GetCaretPos(&point);
//取得光标所在的字符index
long lr = ::SendMessage(hWnd, EM_CHARFROMPOS, 0, MAKELPARAM(point.x, point.y));
char data[256];
//取得edit的内容
::SendMessage(hWnd, WM_GETTEXT, (WPARAM)256, (LPARAM)data);
char *result = new char[lr + 1];
//取得edit中光标之前的字符串
memcpy(result, data, lr);
result[lr] = '\0';
::MessageBox(NULL, result, "Test", 0);
delete result;
result = NULL;
lr = 0;
}
HWND hwnd;
GUITHREADINFO pg;
POINT point;
pg.cbSize=48;
::GetGUIThreadInfo(NULL,&pg);//GetGUIThreadInfo功能检索有关的活动窗口或指定的图形用户界面(GUI)线程的信息。
hwnd=pg.hwndCaret;//显示插入符的窗口句柄
if (pg.hwndCaret)
{
point.x=pg.rcCaret.right;//rcCaret:一个RECT结构,描述插入符的边界矩形,在客户区坐标,相对hwndCaret成员指定的窗口
point.y=pg.rcCaret.bottom;
::ClientToScreen(pg.hwndCaret,&point);//转换成相对于屏幕的坐标
} point即是光标在屏幕上的坐标。