我正在尝试使用以下命令将进程中的窗口嵌入到外部进程的窗口中设置父级功能并遇到了一些问题。首先,以下概述了我当前正在将窗口嵌入到应用程序中的操作:
HWND myWindow; //Handle to my application window
HWND externalWindow; //Handle to external application window
SetParent(myWindow,externalWindow);
//Remove WS_POPUP style and add WS_CHILD style
DWORD style = GetWindowLong(myWindow,GWL_STYLE);
style = style & ~(WS_POPUP);
style = style | WS_CHILD;
SetWindowLong(myWindow,GWL_STYLE,style);
此代码有效,我的窗口出现在其他应用程序中,但引入了以下问题:
- 当我的窗口获得输入焦点时,外部进程的主应用程序窗口失去焦点(即标题栏改变颜色)
- 当我的窗口具有焦点时,主应用程序的键盘快捷键命令不起作用
有解决方法吗?我希望我的窗口被视为主应用程序的另一个子窗口。
嗯,我终于找到了我的问题的答案。
要解决主应用程序失去焦点的问题,您需要使用附加线程输入将嵌入式窗口线程附加到主应用程序线程的函数。
另外,人们还可以使用翻译加速器函数响应 WM_KEYDOWN 消息,以确保触发主应用程序的加速器消息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)