Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Захват окна, пример - как в PicPick или FSCapture (http://forum.oszone.net/showthread.php?t=168124)

e5620 21-02-2010 20:12 1352783

Захват окна, пример - как в PicPick или FSCapture
 
Приветствую всех, имеется вопрос по части реализации захвата окна под указателем мышки, при этом чтоб окно выделялось по краям цветом. Пример: PicPick, FSCapture, Spy++ реализует захват окна.

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

Пробывал под курсор "запихивать" форму минимальных размеров 4х4 пикселя, чтоб избавиться от ненужного "меняют свои свойства" но так и не смог жестко прикрепить форму к курсору.

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

В FSCapture заметил что разворачивается на весь экран форма, на которой каким-то образом все и выделяется, но с подобной реализацией функция WindowFromPoint возвращает только мое окно.
В Spy++ окно не раскрывается, но при этом захвате левая мышка кнопки уже нажата в результате чего нет ненужных - "меняют свои свойства", но нажатая первоначально кнопка это лишнее.

Идеально было бы сделать с окном как в FSCapture.

D@n1k007 21-02-2010 20:23 1352792

Отличный вопрос, присоединяюсь к автору! Если кто знает поделитесь инфой.

e5620 22-02-2010 08:21 1353093

Решил проблему через GetWindow & ChildWindowFromPointEx. Стало идентично как в FSCapture.

Всем спасибо за внимание.

pva 22-02-2010 23:41 1353641

Если "захватываемому" окну (которое на десктопе) сделать стиль WS_DISABLED, то скорее всего (зависит от реализации оконной процедуры) оно будет отрисовываться правильно, но сообщений ввода (в т.ч. мыши) получать не будет.


Время: 22:09.

Время: 22:09.
© OSzone.net 2001-