Как отключить стиль окна WS_CAPTION (используя user32.dll)? - PullRequest
1 голос
/ 13 сентября 2009

Я встраиваю стороннее приложение в панель формы C # Windows (используя SetParent из user32.dll). Затем мне нужно отключить стиль окна заголовка WS_CAPTION, чтобы он выглядел как часть хостинг-приложения.

Как мне изменить стиль окна, чтобы добиться этого?

Например, скажем, _hWnd - это дескриптор приложения для встраивания.

Ответы [ 4 ]

2 голосов
/ 13 сентября 2009

Если память используется, вы можете выполнить GetWindowLong для стиля, | = ~ WS_CAPTION для этого значения, а затем SetWindowLong. См. Эти API в MSDN.

Также см .: http://www.codeguru.com/forum/showthread.php?t=352963

1 голос
/ 13 сентября 2009

Взгляните на WindowInterceptor

1 голос
/ 13 сентября 2009

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

0 голосов
/ 22 апреля 2013

Используйте 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);
...