Стиль WS_CLIPSIBLINGS автоматически добавлен - PullRequest
0 голосов
/ 05 июня 2019

Я создал окно со следующими стилями: WS_CLIPCHILDREN |WS_POPUP |WS_BORDER |WS_SIZEBOX |WS_VISIBLE .

Но по неизвестной причине автоматически добавляется стиль WS_CLIPSIBLINGS .

Знаете ли вы причину этого?

Пример кода:

hWnd = CreateWindowExW(0, szWindowClass, szTitle, WS_CLIPCHILDREN | WS_POPUP | WS_BORDER | WS_SIZEBOX | WS_VISIBLE, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

1 Ответ

0 голосов
/ 06 июня 2019

В MSDN .

упоминаются только дочерние окна. Отсекает дочерние окна относительно друг друга;то есть, когда конкретное дочернее окно получает сообщение WM_PAINT, стиль WS_CLIPSIBLINGS обрезает все другие перекрывающиеся дочерние окна из области дочернего окна, подлежащей обновлению.Если WS_CLIPSIBLINGS не указан и дочерние окна перекрываются, при рисовании в пределах клиентской области дочернего окна можно рисовать в пределах клиентской области соседнего дочернего окна.

Фактически, Все перекрывающиеся и всплывающие окна имеют свойства WS_CLIPSIBLINGS.Иными словами, вы не можете избавиться от атрибутов WS_CLIPSIBLINGS и нарисовать в окнах его перекрывающихся братьев.

Если это просто дочернее окно, вы можете добавить WS_CLIPSIBLINGS самостоятельно.

1

Добавить WS_CLIPSIBLINGS

2

После перерисовки

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