无样式的win32子窗口大小调整

时间:2019-02-28 07:10:17

标签: c# wpf winapi hwnd childwindow

我有一个Win32窗口,需要将其放入WPF窗口中。

该win32窗口最初并未构造为子窗口。

var style = (SetWindowLongFlags)GetWindowLong(_hwnd, WindowLongIndexFlags.GWL_STYLE);
            style &= ~(SetWindowLongFlags.WS_POPUP|SetWindowLongFlags.WS_CAPTION);
OR // style &= ~(SetWindowLongFlags.WS_BORDER);
            style |= SetWindowLongFlags.WS_CHILD;

SetWindowLong(_hwnd, WindowLongIndexFlags.GWL_STYLE, style);

SetParent(_hwnd, hwndParent.Handle);

在我尝试使用MoveWindowSetWindowPos实际调整子窗口大小之前,一切都很好。它将仅使用父窗口的整个高度,而忽略高度(和宽度)参数。定位似乎还可以。

我还尝试了以下方法https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/walkthrough-hosting-a-win32-control-in-wpf(进行了一些小的修改,因为我自己没有创建win32窗口,所以从一开始就不能给它WS_CHILD),而且没有样式,我不这样做无法获得SIZE消息。如果我从一开始就将其创建为子窗口,那么一切都很好。

有人知道为什么从窗口中删除WS_BORDERWS_POPUP样式会阻止我调整大小吗?

0 个答案:

没有答案