Вверх ↑
Ответов: 2201
Рейтинг: 675
#1: 2014-05-28 09:48:47 ЛС | профиль | цитата
176-104-171-213.matrixnet писал(а):
Кроме окна ОК правильной прорисовки нет.
Если вас это не убедило, то вот вам более весомое доказательство, того что функция SetWindowRgn применило регион к окну.
Вот скриншот схемы в которой как устанавливается регион, так и получается регион с окна, после чего этот регион отрисовывается на PaintBox-е.
Скриншот схемы
Сама тестовая схема
Обратите внимание что прозрачность Transparent=True у элемента Label установлено.
И для получения региона используется второй элемент, который не может содержать в себе данные о регионе кроме как получить их у окна.
Для теста нажмите вначале кнопку Test1 (регион установиться к окну), а потом кнопку Test2 у окна будет получен регион и отрисован на PaintBox-е.
А вот и результат схемы где прорисовки нормально элемента не произошло, но регион установлен, что видно по результатам работы функции GetWindowRgn которая и возвращает установленный регион.
Результат работы тестовой схемы

Еще раз повторю причина неправильной прорисовки это не вина функции SetWindowRgn.

176-104-171-213.matrixnet писал(а):
программист от пользователя тем и отличается что первый доходит до глубинной сути вещей,а второй пользуется правилами.
Так объясните эту суть.

------------ Дoбавленo в 09.48:
flash1103, вот вам еще один пример того что регион применен к панели.
Посмотрите работу этой схемы: Схема 2 (используются только стандартные элементы). Тут для тестирования установлен у панели свой курсор (crCD - курсор с диском), поводите курсором над панелью до нажатия на кнопку (Test1) и после нажатия. И обратите внимания что курсор мыши меняется только в том месте где применен регион (треугольная форма).
карма: 11

1
файлы: 4rgn_transparent_02.jpg [22.5KB] [942], rgn_transparent_01.jpg [89.9KB] [838], rgn_transparent_01.sha [3.6KB] [359], rgn_transparent_02.sha [2.5KB] [453]
Голосовали:flint2