【问题标题】:Stop window from getting focus on click on it停止窗口专注于点击它
【发布时间】:2013-11-12 14:16:49
【问题描述】:

您好,我正在使用 pjsua http://www.pjsip.org/pjsua.htm,我正在制作视频通话应用程序。我的问题是,当我建立连接并打开视频时,如果我点击视频,视频窗口就会获得焦点。所以在那一刻我不能为我的应用程序使用键盘快捷键(因为现在视频窗口是焦点)。我需要完全阻止视频窗口可点击,以免它获得焦点。

【问题讨论】:

  • 窗口收到 WM_MOUSEACTIVATE 消息,告诉它被点击了。如果它不应该被激活,它应该返回 MA_NOACTIVATEANDEAT。快捷键击键应始终由消息循环处理,因此哪个窗口具有焦点并不重要。 TranslateAccelerator 是样板方式。

标签: visual-c++ wxwidgets pjsip


【解决方案1】:

我只是通过编辑 SDL 窗口的鼠标事件 SDL_MOUSEBUTTONDOWN 解决了​​这个问题。我使用了BringWindowToTop,它可以将焦点返回到我想要的窗口。

【讨论】:

    【解决方案2】:

    如果你的视频窗口是在 wxWidgets 中实现的,你可以处理wxEVT_LEFT_DOWN 事件并且跳过它,即避免在你的处理程序中调用event.Skip()。这将阻止默认处理程序执行并将焦点分配给窗口。但是,它不会阻止用户以其他方式进行操作,例如通过使用Alt-TAB

    因此,更好的办法是确保您也处理视频窗口中的键盘事件。

    【讨论】:

    • 不,视频是 pjmedia,它也是 pjsip 的一部分。无论如何,我以其他方式解决了问题
    猜你喜欢
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-17
    • 2013-07-20
    • 2013-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多