在Windows CE中查找Caret的屏幕位置。 (相当于GetGUIThreadInfo?)

时间:2010-11-23 21:26:07

标签: c++ winapi windows-ce sip

我正在创建一个自定义的软输入面板,并希望找到Caret的位置。如果它覆盖了输入文本的位置,我可以将SIP移开。

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

插入符号应仅显示在具有焦点且处于活动状态的窗口上。怎么样:

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

如果您需要更多信息(如特定子窗口),您可以将GetCaretPos()返回的点转换为屏幕坐标,然后使用WindowFromPoint()转换回特定(子)窗口句柄