【问题标题】:How to set input focus to an application which is not in foreground in Windows?如何将输入焦点设置到不在 Windows 前台的应用程序?
【发布时间】:2010-10-21 13:37:01
【问题描述】:

我希望我的应用程序在鼠标悬停在其上时捕获输入焦点。如何在 Windows 中执行此操作?

基本上,当应用程序不在前台时,我不希望用户在输入任何文本之前显式单击应用程序或任务栏图标。

我在鼠标悬停通知中尝试了SetForegroundWindow API,但这只是在任务栏中闪烁图标。

有什么建议吗?

【问题讨论】:

    标签: user-interface mfc winapi


    【解决方案1】:

    不确定焦点应该在哪里。但是,如果到悬停的窗口,则使用 SendInput() 伪造鼠标单击。

    【讨论】:

      【解决方案2】:

      试试GetDlgItem(QTIDD_W01_0)->SetFocus(); //QTIDD_W01_0是屏幕的窗口

      【讨论】:

        【解决方案3】:

        有 3 种方法可以使您的窗口处于活动状态

        1. 使用 SetActiveWindow API 使您的窗口处于活动状态。
        2. 枚举所有窗口并获取窗口句柄并制作前景窗口。
        3. 使用 AllowSetForegroundWindow API,它接受 processid 作为参数并使该进程处于活动状态。

        【讨论】:

          猜你喜欢
          • 2017-01-18
          • 2011-05-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多