我想创建弹出窗口(具有固定的大小)是这样的:

“弹出式窗口”

在使用C#我的申请。我看着NativeWindow的,但我不知道这是做正确的方式。我希望有一个窗口,以完全一样的音量控制或“连接到”窗口在Windows 7。

我怎样才能做到这一点?

有帮助吗?

解决方案

我能够实现这一点:

if (m.Msg == 0x84 /* WM_NCHITTEST */) {
    m.Result = (IntPtr)1;
    return;
}
base.WndProc(ref m);

其他提示

使用的WinForms,创建一个表单,并设置以下:

Text = "";
FormBorderStyle = Sizable;
ControlBox = false;
MaximizeBox = false;
MinimizeBox = false;
ShowIcon = false;

修改

这确实需要的窗口是相当大的,但你可以在这一点欺骗。设置和的minimumSize向MAXIMUMSIZE所需的大小。这将防止用户从调整大小。

杰夫建议,你也可以做到这一点的CreateParams:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        unchecked
        {
            cp.Style |= (int)0x80000000;    // WS_POPUP
            cp.Style |= 0x40000;            // WS_THICKFRAME
        }
        return cp;
    }
}

在这两种情况下,但是,你还是会得到一个大小光标,当你将鼠标悬停在边缘。我不知道如何防止这种情况发生。

在您的CreateParams指定WS_POPUP和WS_THICKFRAME。

要防止上浆游标在边界处理WM_NCHITTEST若超过边界返回HTBORDER

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top