WORD操作中:如何获取用户鼠标所点的光标位置(有表格的),急!!(100分)

  • 主题发起人 主题发起人 Showxy
  • 开始时间 开始时间
S

Showxy

Unregistered / Unconfirmed
GUEST, unregistred user!
如题!我在大富翁上查了挺多资料的,但都不能满足我的要求!

我的目的是:得到用户鼠标所点的位置(光标闪动的地方),当用户一个按钮时,
添加一个书签!!(就相当于开放了一个友好的设置书签的功能)
现在的问题是:“得到用户鼠标所点的位置(光标闪动的地方)”?
说明一下:用户基本操作是点中表格里面的单元格,并按‘添加书签按钮’!

按钮里面的代码是: TmpWdApp.ActiveDocument.selection.Bookmarks.Add('主单元格',TmpWdApp.Activedocument.Range);
现在完全达不到我的要求(没法在指定的位置添加)!!

这里先谢谢大家了!
 
我所要就是一个类word的简单的添加书签的功能。
只不过书签是我在程序里面写死了的而已!!
 
BOOL GetCaretPos( LPPOINT lpPoint
// address of structure to receive coordinates

);

The caret is a shared resource; there is only one caret in the system. A window can set the caret position only if it owns the caret.


----------------------------------------------
1. 判断当前actived window不是自己程序, 并取得别人窗口的hwnd.
2. 用EnumChildWindow和showcaret判断别人窗口中哪个edit control具备键盘输入焦点
3. getcaretpos取得别人窗口中当前edit中的光标位置.
 
to weiliu:
不好意思,我是在delphi使用ole控件:
对word操作进行!

还有一点值得明确的就是:取到了位置,并且还要在该位置上添加上书签呀?
比如weiliu说的用GetCaretPos取到位置,但用不起来呀,怎么添加书签呢 ?
 
怎么没人呀 ?闲分少吗?如果能解决,我可以再加分的!!
 
我还在等啊,期待援手啊!!!!!!!
 
好郁闷都挂了快两天了。居然就weiliu来了下。
 
选中鼠标焦点所在的单元格
MyDoc.Application.Selection.SelectCell;
增加标签
MyDoc.Bookmarks.Add(Range:=MyDoc.Application.Selection.Range,Name:='主单元格');
 
TmpWdApp := Ole1.OleObject.Application;
if TmpWdApp.Selection.Information(wdWithInTable) then
f_message_ok('你所选的位置不在表格中!');
TmpWdApp.selection.Bookmarks.Add('主单元格', TmpWdApp.selection.range); //添加书签

上面前几天自己解决了的代码跟康凌大同小异!
不过还是很感谢康凌,weiliu!散分!
 
多人接受答案了。
 
后退
顶部