Как создать форму с рамкой, но без заголовка? (например, регулятор громкости в Windows 7) - PullRequest
24 голосов
/ 29 августа 2010

В Windows 7 окна микшера громкости имеют особый стиль с толстой прозрачной рамкой, но без заголовка. Как мне воссоздать этот стиль окна в окне winforms?

volume mixer

Я попытался установить для Text значение string.Empty и ControlBox в false, что удаляет заголовок, но затем граница также исчезает:

border disappears

Ответы [ 3 ]

33 голосов
/ 29 августа 2010
form.Text = string.Empty;
form.ControlBox = false;
form.FormBorderStyle = FormBorderStyle.SizableToolWindow;

Для окна фиксированного размера вы все равно должны использовать FormBorderStyle.SizableToolWindow, но вы можете переопределить WndProc формы, чтобы игнорировать тесты попаданий, не относящиеся к клиенту (которые используются для переключения на курсоры размеров):

protected override void WndProc(ref Message message)
{
    const int WM_NCHITTEST = 0x0084;

    if (message.Msg == WM_NCHITTEST)
        return;

    base.WndProc(ref message);
}

Если вы действительно хотите установить размер, вы также можете установить MinimumSize равным MaximumSize в форме.

1 голос
/ 17 августа 2016

Поскольку «Это редактирование предназначалось для автора сообщения и не имеет смысла как редактирование. Оно должно было быть написано как комментарий или ответ».Я представляю изменение ответа Криса в качестве нового ответа.

Код его ответа работает, как описано, за исключением того, что он также предотвращает любое событие мыши в клиентской области.Вам нужно вернуть 1 (как в HTCLIENT), чтобы это исправить.

protected override void WndProc(ref Message message)
{
    const int WM_NCHITTEST = 0x0084;
    const int HTCLIENT = 0x01;

    if (message.Msg == WM_NCHITTEST)
    {
        message.Result = new IntPtr(HTCLIENT);
        return;
    }

    base.WndProc(ref message);
}
0 голосов
/ 26 июня 2016

form.FormBorderStyle = FormBorderStyle.Fixed3D;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...