![]() |
Захват окна, пример - как в PicPick или FSCapture
Приветствую всех, имеется вопрос по части реализации захвата окна под указателем мышки, при этом чтоб окно выделялось по краям цветом. Пример: PicPick, FSCapture, Spy++ реализует захват окна.
Пробывал создавать прозрачное окно, для того чтоб рисовать на нем только выделения, и после сокрытия чтоб выделение пропадало (решилась проблема перерисовки). Но тут большой минус в том что сложно отловить нажатие левой кнопки, чтобы оно не прошло "насквозь" в чужое окно. И при этом еще задевало некоторые элементы которые "меняют свои свойства" при наведении на них мышкой. Пробывал под курсор "запихивать" форму минимальных размеров 4х4 пикселя, чтоб избавиться от ненужного "меняют свои свойства" но так и не смог жестко прикрепить форму к курсору. Посоветуйте, если кто сталкивался с подобной проблемой, подскажите пожалуйста как её решить. Примеры на любом ЯП, или хотя бы просто описание подобной реализации. В FSCapture заметил что разворачивается на весь экран форма, на которой каким-то образом все и выделяется, но с подобной реализацией функция WindowFromPoint возвращает только мое окно. В Spy++ окно не раскрывается, но при этом захвате левая мышка кнопки уже нажата в результате чего нет ненужных - "меняют свои свойства", но нажатая первоначально кнопка это лишнее. Идеально было бы сделать с окном как в FSCapture. |
Отличный вопрос, присоединяюсь к автору! Если кто знает поделитесь инфой.
|
Решил проблему через GetWindow & ChildWindowFromPointEx. Стало идентично как в FSCapture.
Всем спасибо за внимание. |
Если "захватываемому" окну (которое на десктопе) сделать стиль WS_DISABLED, то скорее всего (зависит от реализации оконной процедуры) оно будет отрисовываться правильно, но сообщений ввода (в т.ч. мыши) получать не будет.
|
Время: 22:09. |
Время: 22:09.
© OSzone.net 2001-