请问:如何得到Caret的绝对位置?
解决方案 »
- 高分发帖
- DELPHI2009 游戏角色名称无法显示,要不就是乱码?
- 谁有Developer Express控件的全部控件组
- 想使用系统时间作一个文件的名字,设置了datetimepicker1的format为‘yyyyMMddHHmmss',保存时不对了。
- 在DELPHI中如何得到WINDOWS注册表某一节点下的所有数据(在线等待)
- 请问,我想把一个32位,大小为48*48的图标的每一个点色值读出来,请问如何做呢?
- 怎样判断Combobox控件已经下拉?
- 有没有简单一点的办法,在线等待
- 如果有30万现金,现在要作什么最赚钱?
- 如何巧妙的判断系统已经安装了TTS,即支持发音功能了!(一定给分)
- 当前记录号
- 请做过delphi程序和指纹仪连接的朋友帮忙
2、在Word中,GetCaretPos返回值为0,0问题未解决。
通过句柄得到它的窗口坐标
然后在得到caret的坐标,然后相加
除了Word等office软件的Caret位置,其它的都可以,怪怪怪!
注释我就不写了,能帮我找Bub的一定没问题。var
X,Y:integer;
CaretW,CaretH:integer;
Pos:TPoint;
R:TRect;
MyId,ItID:DWord;
H:HWND;
begin
.............................. H:=GetForeGroundWindow;
if (H =Handle) then Exit; MyID := GetCurrentThreadId();
ItID := GetWindowThreadProcessId(H, nil); AttachThreadInput(ItID, MyID,true); SetForeGroundWindow(H);
Windows.SetFocus(H);
H:=GetFocus; GetWindowRect(H,R);
GetCaretPos(Pos); AttachThreadInput(ItID, MyID,false); CaretW:=GetSystemMetrics(SM_CXCURSOR);
CaretH:=GetSystemMetrics(SM_CYCURSOR); X:=R.Left+Pos.X+CaretW;
Y:=R.Top+Pos.Y+CaretH; ................................
end;
但是Word中的Caret绝对坐标找不到。
楼主节日快乐!!!!