SetParent()调整主窗体的大小

时间:2016-03-27 02:42:50

标签: c# wpf winforms parent-child dllimport

我正在使用SetParent()将表单嵌入到现有窗口中。 它工作正常但是当我移动现有窗口时,我的表单会调整大小到现有窗口的大小。因此,例如,如果我的表单大小为300x200且窗口大小为800x800,则一旦我移动(拖动)窗口,我的表单就会调整大小到窗口的大小(800x800)。 有没有办法避免这种情况?

这是我的代码:

        [DllImport("user32.dll", SetLastError = true)]
        private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
        [DllImport("user32.dll")]
        public static extern int GetWindowLong(IntPtr hWnd, int nIndex);
        [DllImport("user32.dll")]
        public static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
        public static int GWL_STYLE = -16;
        public static int WS_CHILD = 0x40000000;


        //my call of the methods
        SetWindowLong(this.Handle, GWL_STYLE, GetWindowLong(this.Handle, GWL_STYLE) | WS_CHILD);
        SetParent(this.Handle, GetHandle());

0 个答案:

没有答案