|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нужно нарисовать рамку вслед за курсором
Где бы взять код такого плана:
Я выделяю какую то область экрана по нажатой кнопке мышки , В конце выделения отпускаю мышку. Мне нежен код который рисовал бы рамку от координат нажатия мышки , далее при перемещинии мышки эта рамка увеличивала бы размер до курсора мышки и после отпускания мышки рамка бы пропадала но не оставляла после себя никаких следов на рабочем столе и в других окнах. |
#2
|
||||
|
||||
Самое простое на мой взгляд - скопировать через bitblt кусок экрана от начальной точки и до мышки, потом нарисовать по краю рамку. При перемещении мыши - поставить этот кусок назад, скопировать уже до новых координат курсора и т.д.
Можно конечно через тот же bitblt копировать и линии, но это в 4 раза труднее т.к. надо его применять 4 раза jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 17.11.2010 в 20:29. |
#3
|
|||
|
|||
Нужна помощь.
Цитата:
А маленького кусочка кода нет случайно ? Незнаю с чего начать. Наверное надо ставить хак на перемещение мышки ? Мне ведь надо только при копировании экрана выделять область линиями а не всегда. |
#4
|
||||
|
||||
Во-первых, не хак а хук пишешь ДЛЛ-библиотеку и там надо сделать функцию нужную. Программа должна эту ДЛЛ грузить.
Про хуки лучше почитать в инете - инфы навалом. Во-вторых: Код:
var DC:HDC; bm:TBitMap; ... bm:=TBitMap.Create; DC:=GetDC(0); // получишь DC экрана // при сохранении куска раб. стола ... bm.width:=w; bm.height:=h; // ширина и высота копируемой области bitblt(bm.canvas.handle,0,0,w-1,h-1,DC,x,y,SRCCOPY); // копировать в BM кусок из DC WxH ... //При загрузке bitblt(DC,x,y,w-1,h-1,bm.canvas.handle,0,0,SRCCOPY) // копировать на экран Код:
windows.MoveToEx(DC,x,y,nil); windows.LineTo(DC,x+w-1,y+h-1); jmp $ ; Happy End! The Cake Is A Lie. Последний раз редактировалось Bargest, 18.11.2010 в 15:15. |