2013-11-01 67 views
1

你好,我使用pjsua http://www.pjsip.org/pjsua.htm,我正在视频通话应用程序。我的问题是,当我建立连接并开启视频时,如果点击视频,视频窗口就会获得焦点。所以在那一刻我无法使用我的应用程序的键盘快捷键(因为现在视频窗口在焦点上)。我需要停止视频窗口根本无法点击,以至于它永远无法获得焦点。停止窗口从重点点击它

+0

该窗口获取WM_MOUSEACTIVATE消息以表明它已被单击。如果它不应该被激活,它应该返回MA_NOACTIVATEANDEAT。快捷键应始终由消息循环处理,因此哪个窗口具有焦点并不重要。 TranslateAccelerator是样板化的方式。 –

回答

1

我通过编辑SDL窗口的鼠标事件SDL_MOUSEBUTTONDOWN解决了问题。我已经使用了BringWindowToTop,它做的工作是将焦点返回到我想要的窗口。

0

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

所以一个更好的主意是确保你也可以在视频窗口中处理键盘事件。

+0

不,视频是pjmedia,也是pjsip的一部分。无论如何,我通过其他方式解决了问题 – nikolakoco