Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.05.2019, 10:12   #1
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 421
Репутация: -121
По умолчанию Как правильно получать текущий регион отсечения?

Как правильно получать текущий регион отсечения?
Цитата:
ClippingRegion=CreateRectRgn(...);
std::cout<<"ClippingRegion="<<(void *)ClippingRegion<<std::endl;
PreviousClippingRegion=CreateRectRg n(0, 0, 0, 0);
std::cout<<"PreviousClippingRegion= "<<(void*)PreviousClippingRegion<<s td::endl;
GetClipRgn(DeviceContext, PreviousClippingRegion);
std::cout<<"PreviousClippingRegion= "<<(void*)PreviousClippingRegion<<s td::endl;
выводит дважды одно и то же значение PreviousClippingRegion, не имеющее ничего общего с ClippingRegion. Чего я здесь не понимаю? ClippingRegion создаётся в вызывающей функции, а PreviousClippingRegion требуется получить в вызываемой. Для двух целей:
1. Комбинировать его с другим, так, чтоб новый регион был меньше старого и не вылезал за старый старый регион.
2. Вернуться потом к старому региону.

Последний раз редактировалось taras-proger77; 26.05.2019 в 10:34.
taras-proger77 вне форума   Ответить с цитированием
Старый 27.05.2019, 21:28   #2
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,887
Репутация: 1915
По умолчанию

GetObject()
waleri вне форума   Ответить с цитированием
Старый 28.05.2019, 07:16   #3
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 421
Репутация: -121
По умолчанию

А где ж я готовый дескриптор возьму? Мне его как раз получить надо.
taras-proger77 вне форума   Ответить с цитированием
Старый 28.05.2019, 15:00   #4
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,887
Репутация: 1915
По умолчанию

Тогда никак...
waleri вне форума   Ответить с цитированием
Старый 29.05.2019, 09:23   #5
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Адрес: Московская Область, скверное место, не рекомендовал бы тут жить.
Сообщений: 359
Репутация: 248
По умолчанию

Не очень понял суть... Где вы задаёте-то ваш ClippingRegion? Кстати, если что, Функция GetClipRgn():
Цитата:
Если функция завершается успешно, параметр hrgn - это дескриптор копии текущего региона отсечения. Последующие изменения этой копии не будут оказывать влияние на текущий регион отсечения.
ResourceSpace вне форума   Ответить с цитированием
Старый 30.05.2019, 06:59   #6
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 421
Репутация: -121
По умолчанию

Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
Не очень понял суть... Где вы задаёте-то ваш ClippingRegion? Кстати, если что, Функция GetClipRgn():
В вызывающей функции. А вызываемая должна комбинировать его с другим. Читайте и будет Вам
Цитата:
щасье
.
Цитата:
Сообщение от ResourceSpace Посмотреть сообщение
Последующие изменения этой копии не будут оказывать влияние на текущий регион отсечения.
Ну так комбинированный регион будет выбран селектом, а копия должна участвовать в комбинации.
taras-proger77 вне форума   Ответить с цитированием
Старый 01.06.2019, 15:49   #7
ResourceSpace
Форумчанин
 
Аватар для ResourceSpace
 
Регистрация: 30.06.2015
Адрес: Московская Область, скверное место, не рекомендовал бы тут жить.
Сообщений: 359
Репутация: 248
По умолчанию

Весь тестовый код увидеть можно?
ResourceSpace вне форума   Ответить с цитированием
Старый 03.06.2019, 09:25   #8
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 421
Репутация: -121
По умолчанию

Отдельно тестилки нет, всё в основном проекте, а в нём уже 43946 строк.
taras-proger77 вне форума   Ответить с цитированием
Старый 03.06.2019, 09:48   #9
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 18,992
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Да хватит уже числом строк понтоваться.
Выделить в простой работающий пример на пару десятков строк не сложно, не говоря уж о том, что многие проблемы решаются на этом этапе.
Alex11223 вне форума   Ответить с цитированием
Старый 03.06.2019, 12:46   #10
taras-proger77
Форумчанин
 
Регистрация: 17.12.2018
Сообщений: 421
Репутация: -121
По умолчанию

Что ж у Петзолдта пары десятков строк как раз не хватило до стони в приветствии, полностью рисуемом в одной функции, а примеров на отсечение меньше, чем на пару страниц нет вообще? И я мориться не обучен.
taras-proger77 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Размер контекста памяти taras-proger77 Win Api 10 06.06.2019 19:32
алгоритм отсечения FC _BYTE Помощь студентам 0 17.06.2014 13:09
Как можно узнать текущий адрес страницы компонента idhttp? DHARMA373 Общие вопросы Delphi 2 06.02.2013 03:11
Бордюр и регион Claster Помощь студентам 0 08.07.2011 10:57
с помощью чего можно с Edita вытянуть денежный эквивалент Bl@ck_A_n_G_e_L Общие вопросы Delphi 1 06.05.2008 14:03


02:42.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.