![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
всем приветы. по событию нужно копировать часть клиентской области чужого окна.
использую стандартную схему. FindWindow(), затем в потоке GetDC() -> GetPixel() -> ReleaseDC(). столкнулся с такой проблемой: если приложение работает в рамке, то все ок. если приложение развернуть во весь экран (заголовок окна не виден, клиентсая область на весь экран) GetPixel() возвращает приксели по другим координатам, отличным от тех, что заданы в коде. Помогает только перезапуск потока когда приложение в полноэкранном режиме. GetClientRect() ведет себя аналогично GetDC(). пробовал обновлять окно без результатов. Кто что думает? |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
думаю, GetDC и GetClientRect работают правильно. Они не могут работать как-то иначе, если только само окно не сдвинуто относительно начала координат (за пределами раб. стола) [при том, что обращение происходит к экранному DC: GetDC(NULL)]
Это сообщение отредактировал(а) GremlinProg - 11.1.2015, 19:15 -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
vol4ek |
|
|||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
нет. это DirectX приложение. работает в оконном режиме и полнозкранном. написал простенький код чтоб посмотреть что же там происходит на самом деле.
так вот, когда приложение в оконном режиме пиксель с координатами х=10, у=10 зеленого цвета как и должно быть. когда переключаю окно в полноэкранный режим, становится х=10, у = 10 + ширина рамки окна. если делать захват когда приложение в полноэкранном режиме все ок х=10, у=10. переключаю в оконный отже все ок х=10, у=10. не пойму что не так. |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
vol4ek |
|
||||
![]() конь в пальто ![]() ![]() Профиль Группа: Участник Сообщений: 304 Регистрация: 1.5.2011 Где: Минск Репутация: нет Всего: 0 |
я все же думаю что это фикс. дело в том что где-то год назад писал уже такую программу именно для этого приложеня и все норм работало. полетел винт и надо делать заного. Добавлено через 1 минуту и 33 секунды
скорее всего так и происходит сейчас. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |