-
Всем добрых суток. Поискал в поиске не нашел.
Хочу реализовать функцию копирования части экрана, выделенную пользователем.
Как я вижу: По нажатию горячих клавиш пользователь выделяет необходимую область/часть экрана для копирования. Выделение в виде прямоугольника, то есть необходимо пользователю указать координаты левого верхнего угла и нижнего правого.
Например: Указав кликом первую координату за курсором тянется прямоугольник до второго клика.
Но с толкнулся с проблемой, что не могу сообразить с чего начинать. Как реализовать? Поделитесь опытом или где можно почитать?
Спасибо.
-
google: по отрисовке - screenmate, по копированию - screenshot
-
-
Спасибо, antonn, на 60% то что нужно буду смотреть
-
Спасибо, antonn, на 60% то что нужно буду смотреть
-
А вообще возможна реализация задумки без создания формы и размещения скрина на ней ?
-
Копирование - GetDC() + BitBlt() [про флаг captureblt не забудьте] + ReleseDC() Копирование хоть из консоли можно делать, а вот выделять-то как? Ну сделайте просто окно с регионом в форме тонкой рамки + SerCapture() и ловите WM_MOVE...
-
-
> А вообще возможна реализация задумки без создания формы и размещения скрина на ней ?
Просто на GetDC(0) рисовать не рекомендуется. Да и не получится нормально. Вывод: если нужно дать пользователю возможность выделить область мышкой - создавать окно придётся. Можно не рисовать, а использовать в качестве рамки само окно - SetWindowRgn().
> про флаг captureblt не забудьте
Это для поддержки Win2000/WinXP. В более ранних его нет, в более поздних оно и без него работает как с ним.
|