繁体   English   中英

确定文档是否实际具有焦点

[英]Determine if document ACTUALLY has focus

VSTO中是否可以使用属性或函数来确定文档是否具有实际的键盘焦点? 当文档是当前文档但未聚焦时 (例如,显示模式对话框或警报时),属性或函数应返回false。 请注意, ActiveWindowActiveDocument无法做到这一点,而且当警报集中时, Application.WindowDeactivate似乎也不会触发。

这是Word 2013(桌面)+ VSTO 4 + C#+ .NET Fx 4.5。

仅可以使用WinAPI。

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
public static extern IntPtr GetForegroundWindow();

bool WordHasFocus {
    get {
        IntPtr wordHandle = Process.GetCurrentProcess().MainWindowHandle;
        IntPtr focusedWindow = GetForegroundWindow() ;
        return wordHandle == focusedWindow;
    }
}

它仅向您显示该单词具有焦点。 如果要检查给定的文档,则还需要确保给定的文档是活动文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM