Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Скриншот окна по имени

Автор: Noob256 7.4.2018, 0:09

Добрый день.
Как сделать скриншот окна по имени?

могу получить HWND
handle = FindWindow(NULL, L"word");

но как заставить QPixmap::grabWindow сделать скриншот именно этого окна?

Автор: Noob256 7.4.2018, 7:25

какие библиотеки и как нужно подключить в QT5.10 для BitBlt ?
Как HBITMAP засунуть в QPixmap ?

раньше была функция QPixmap::fromWinHBITMAP, теперь ее вроде нету

Автор: Алексей1153 8.4.2018, 8:07

Noob256,

должно быть
#include <windows.h>

как HBITMAP засунуть в QPixmap -
https://msdn.microsoft.com/en-us/library/windows/desktop/dd144879(v=vs.85).aspx

но придётся ковыряться в форматах.

Можно попробовать так - создать совместимый (по размеру) с битмапом HDC, создать для него полноцветный HBITMAP (bitmap_dst), распечатать туда исходный битмап, а потом с bitmap_dst в едином полноцветном формате копировать при помощи GetDIBits


Автор: Noob256 8.4.2018, 12:56

получилось так:

#include <QtWin>

QtWin::fromHBITMAP

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)