2010-11-23 63 views
0

我正在创建一个自定义软输入面板并希望找到插入符的位置。如果它覆盖输入文本的位置,我可以将SIP移开。在Windows CE中查找插入符号的屏幕位置。 (相当于GetGUIThreadInfo?)

这听起来像在Windows中这样做的方式将与GetGUIThreadInfo()。但是,似乎API在Windows CE(特别是CE 6.0 R3)中不受支持。

是否有其他方法可以找到相同的信息?一种确定活动窗口和文本输入的方法?

谢谢!

回答

0

插入符只应显示在具有焦点并处于活动状态的窗口上。如何像:

POINT cp; 
GetCaretPos(&cp); // in client coordinates 
HWND hActive=GetActiveWindow(); 

如果你需要更多的信息(如特定的子窗口),你可以把由GetCaretPos()返回到屏幕坐标点,然后用WindowFromPoint()转换回一个特定的(子)窗口处理。

+0

Corey,这是前一阵子,我正在处理这个问题,但是IIRC之所以无法使用像你这样的解决方案,是因为在Windows-CE 6.0上GetCaretPos失败,如果你不在同一个进程中拥有这个脱字符的窗口。由于我试图从SIP访问这些信息,因此我无法使用这种方法,因为我试图在不同的过程中找到脱字符的位置。 – eoldre 2011-02-08 21:02:13

相关问题