如何关闭窗口的 WS_CAPTION 样式(使用 user32.dll)?
我正在将第 3 方应用程序嵌入到 C# Windows 表单上的面板中(使用 user32.dll 中的 SetParent
)。然后,我需要关闭标题栏窗口样式 WS_CAPTION
,以便它看起来像托管应用程序的一部分。
如何更改窗口的样式来实现此目的?
举例来说,假设 _hWnd
是要嵌入的应用程序的句柄。
I am embedding a 3rd party app into a panel on a C# Windows form (using SetParent
from user32.dll). I need to then turn off the title bar window style WS_CAPTION
so that it looks like a part of the hosting application.
How do I change a window's style to accomplish this?
For sake of example, say _hWnd
is the handle of the application to embed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果没记错的话,您也许可以对样式执行 GetWindowLong,对该值执行 |= ~ WS_CAPTION,然后执行 SetWindowLong。请参阅 MSDN 中的这些 API。
另请参阅:http://www.codeguru.com/forum/showthread.php ?t=352963
If memory serves, you might be able to do a GetWindowLong on the style, |= ~ WS_CAPTION on that value, and then SetWindowLong. See those APIs in MSDN.
Also see: http://www.codeguru.com/forum/showthread.php?t=352963
SetWindowLong(_hWnd, GWL_STYLE, GetWindowLong(_hWnd, GWL_STYLE) & ~WS_CAPTION);
SetWindowLong(_hWnd, GWL_STYLE, GetWindowLong(_hWnd, GWL_STYLE) & ~WS_CAPTION);
看看 WindowInterceptor
Take look at WindowInterceptor
使用 GetWindowLong 检索窗口样式,屏蔽
WS_CAPTION< 设置更新的样式
/code> 位,然后使用 SetWindowLong:和 with 以下帮助代码:
Use GetWindowLong to retrieve the window style, mask the
WS_CAPTION
bits and then set the updated style using SetWindowLong:and with following helper code: