如何关闭窗口的 WS_CAPTION 样式(使用 user32.dll)?

发布于 2024-08-04 19:04:49 字数 216 浏览 6 评论 0原文

我正在将第 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

心安伴我暖 2024-08-11 19:04:49

如果没记错的话,您也许可以对样式执行 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

自此以后,行同陌路 2024-08-11 19:04:49

SetWindowLong(_hWnd, GWL_STYLE, GetWindowLong(_hWnd, GWL_STYLE) & ~WS_CAPTION);

SetWindowLong(_hWnd, GWL_STYLE, GetWindowLong(_hWnd, GWL_STYLE) & ~WS_CAPTION);

老街孤人 2024-08-11 19:04:49

使用 GetWindowLong 检索窗口样式,屏蔽 WS_CAPTION< 设置更新的样式

var style = GetWindowLong(_hWnd, GWL_STYLE);
SetWindowLong(_hWnd, GWL_STYLE, style & ~WS_CAPTION);

/code> 位,然后使用 SetWindowLong:和 with 以下帮助代码:

const int GWL_STYLE = -16;
const int WS_CAPTION = 0x00C00000;

[DllImport ("user32")]
private static extern int GetWindowLong(System.IntPtr hwnd, int nIndex);

[DllImport ("user32")]
private static extern int SetWindowLong(System.IntPtr hwnd, int index, int newLong);

Use GetWindowLong to retrieve the window style, mask the WS_CAPTION bits and then set the updated style using SetWindowLong:

var style = GetWindowLong(_hWnd, GWL_STYLE);
SetWindowLong(_hWnd, GWL_STYLE, style & ~WS_CAPTION);

and with following helper code:

const int GWL_STYLE = -16;
const int WS_CAPTION = 0x00C00000;

[DllImport ("user32")]
private static extern int GetWindowLong(System.IntPtr hwnd, int nIndex);

[DllImport ("user32")]
private static extern int SetWindowLong(System.IntPtr hwnd, int index, int newLong);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文