Visual c++ 停止窗口获取焦点,单击它

Visual c++ 停止窗口获取焦点,单击它,visual-c++,wxwidgets,pjsip,Visual C++,Wxwidgets,Pjsip,你好,我正在使用pjsua,我正在制作视频通话应用程序。我的问题是,当我建立连接并打开视频时,如果我点击视频,视频窗口就会获得焦点。因此,在那一刻,我不能为我的应用程序使用键盘快捷键(因为现在视频窗口已聚焦)。我需要阻止视频窗口被点击,这样它就永远不会得到焦点。如果您的视频窗口是在wxWidgets中实现的,那么您可以处理wxEVT\u LEFT\u DOWN事件而不跳过它,即避免在处理程序中调用event.skip()。这将阻止默认处理程序执行并将焦点提供给窗口。但是,它不会阻止用户以其他方式

你好,我正在使用pjsua,我正在制作视频通话应用程序。我的问题是,当我建立连接并打开视频时,如果我点击视频,视频窗口就会获得焦点。因此,在那一刻,我不能为我的应用程序使用键盘快捷键(因为现在视频窗口已聚焦)。我需要阻止视频窗口被点击,这样它就永远不会得到焦点。

如果您的视频窗口是在wxWidgets中实现的,那么您可以处理
wxEVT\u LEFT\u DOWN
事件而不跳过它,即避免在处理程序中调用
event.skip()
。这将阻止默认处理程序执行并将焦点提供给窗口。但是,它不会阻止用户以其他方式执行此操作,例如使用
Alt TAB


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

如果您的视频窗口是在wxWidgets中实现的,您可以处理
wxEVT\u LEFT\u DOWN
事件,而不跳过它,即避免在处理程序中调用
event.skip()
。这将阻止默认处理程序执行并将焦点提供给窗口。但是,它不会阻止用户以其他方式执行此操作,例如使用
Alt TAB


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

我只需编辑SDL窗口的鼠标事件SDL_MOUSEBUTTONDOWN,就解决了这个问题。我已经使用了,它可以将焦点返回到我想要的窗口。

我只需编辑SDL窗口的鼠标事件SDL_MOUSEBUTTONDOWN,就解决了这个问题。我已经使用了,它的作用是将焦点返回到我想要的窗口。

该窗口会收到WM_MOUSEACTIVATE消息,告知它已被单击。如果不应激活,则应返回MA_noactivateAT。快捷键敲击应该始终由消息循环处理,因此哪个窗口具有焦点并不重要。TranslateAccelerator是一种样板方式。窗口会收到WM_MOUSEACTIVATE消息,告知它已被单击。如果不应激活,则应返回MA_noactivateAT。快捷键敲击应该始终由消息循环处理,因此哪个窗口具有焦点并不重要。TranslateAccelerator是样板方式。不,视频是pjmedia,也是pjsip的一部分。无论如何,我用另一种方式解决了这个问题不,视频是pjmedia,这也是pjsip的一部分。不管怎样,我用另一种方法解决了这个问题