AHK: правильно ли я понимаю ширину клиентской области GUI? - PullRequest
1 голос
/ 16 марта 2011

На форуме AHK, в этой теме , я получил такой ответ:

элемент управления больше, чем область клиента, но он всегда будет"под" или ограниченное окном клиента

Прочитав это, я сильно запутался в ширине клиентской области.Я всегда думал, что ширина клиентской области равна сумме ширин всех элементов управления (учитывая, что все они расположены в одной горизонтальной линии, а в окне только одна линия), а также расстояния между нимии плюс поля (расстояние между границей окна и первым элементом управления и расстояние между последним элементом управления и границей), но кажется, что я ошибался, предполагая это.

Итак, кто-нибудь может объяснить здесь, пожалуйста, связь между шириной элементов управления GUI и шириной клиентской области.Я задал этот вопрос там, но, похоже, ответ там не скоро.

1 Ответ

1 голос
/ 16 марта 2011

Не-клиентская область элемента управления - это рамка / заголовок и т. Д., Как правило, рисуются окнами в согласованном стиле для вашей темы.

Клиентская область - это все внутри границ - части, которая делает элемент управления уникальным и к которому вы обычно обращаетесь при рисовании.

Windows заставляет окно рисовать себя двумя сообщениями: WM_NCPAINT и WM_PAINT - обработка по умолчанию WM_NCPAINT, например, для. окно верхнего уровня нарисует границу / строку заголовка в соответствии с установленными в окне флагами стиля и текущей темой. Обработка по умолчанию WM_PAINT ничего не даст (цвет фона обрабатывается WM_ERASEBKGND)

...