我将第三方应用程序嵌入到C#Windows窗体的面板中(使用来自user32.dll的SetParent
)。我需要关闭标题栏窗口样式WS_CAPTION
,使其看起来像托管应用程序的一部分。
如何更改窗口的样式以实现此目的?
例如,假设_hWnd
是要嵌入的应用程序的句柄。
答案 0 :(得分:2)
如果内存服务,你可以在样式上执行GetWindowLong,对该值执行| = ~WS_CAPTION,然后使用SetWindowLong。请参阅MSDN中的那些API。
答案 1 :(得分:1)
SetWindowLong(_ hWnd,GWL_STYLE,GetWindowLong(_ hWnd,GWL_STYLE)& ~WS_CAPTION);
答案 2 :(得分:1)
答案 3 :(得分:0)
使用GetWindowLong检索窗口样式,屏蔽WS_CAPTION
位,然后使用SetWindowLong设置更新的样式:
var style = GetWindowLong(_hWnd, GWL_STYLE);
SetWindowLong(_hWnd, GWL_STYLE, style & ~WS_CAPTION);
并使用以下帮助程序代码:
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);