Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Программа и интерфейс
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 17.11.2010, 18:42
bistriy bistriy вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 31
Репутация: 0
По умолчанию Нужно нарисовать рамку вслед за курсором

Где бы взять код такого плана:
Я выделяю какую то область экрана по нажатой кнопке мышки , В конце выделения отпускаю мышку. Мне нежен код который рисовал бы рамку от координат нажатия мышки , далее при перемещинии мышки эта рамка увеличивала бы размер до курсора мышки и после отпускания мышки рамка бы пропадала но не оставляла после себя никаких следов на рабочем столе и в других окнах.
Ответить с цитированием
  #2  
Старый 17.11.2010, 19:59
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Самое простое на мой взгляд - скопировать через bitblt кусок экрана от начальной точки и до мышки, потом нарисовать по краю рамку. При перемещении мыши - поставить этот кусок назад, скопировать уже до новых координат курсора и т.д.

Можно конечно через тот же bitblt копировать и линии, но это в 4 раза труднее т.к. надо его применять 4 раза
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 17.11.2010 в 20:29.
Ответить с цитированием
  #3  
Старый 18.11.2010, 10:52
bistriy bistriy вне форума
Прохожий
 
Регистрация: 30.10.2010
Сообщения: 31
Репутация: 0
По умолчанию Нужна помощь.

Цитата:
Сообщение от Bargest
Самое простое на мой взгляд - скопировать через bitblt кусок экрана от начальной точки и до мышки, потом нарисовать по краю рамку. При перемещении мыши - поставить этот кусок назад, скопировать уже до новых координат курсора и т.д.

Можно конечно через тот же bitblt копировать и линии, но это в 4 раза труднее т.к. надо его применять 4 раза

А маленького кусочка кода нет случайно ? Незнаю с чего начать. Наверное надо ставить хак на перемещение мышки ? Мне ведь надо только при копировании экрана выделять область линиями а не всегда.
Ответить с цитированием
  #4  
Старый 18.11.2010, 14:58
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Во-первых, не хак а хук пишешь ДЛЛ-библиотеку и там надо сделать функцию нужную. Программа должна эту ДЛЛ грузить.
Про хуки лучше почитать в инете - инфы навалом.
Во-вторых:
Код:
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) // копировать на экран
рисование линии на DC:
Код:
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.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:39.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter