save PrintScreen ТОЛЬКО активного MDIдоч.окна в BMPфайл VB6?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Baloo
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 04.12.2005 (Вс) 19:32

save PrintScreen ТОЛЬКО активного MDIдоч.окна в BMPфайл VB6?

Сообщение Baloo » 02.02.2006 (Чт) 18:19

не проблема эмулировать Alt + PrinScreen (keybd_event VK_SNAPSHOT+VK_MENU), но у меня много дочерних окошек (MDIChild = True) и в картинку попадает родительское окно:(
приходится использовать BitBlt - но у меня есть только пример сохранения в буфер:
Код: Выделить всё
   'Picture1 - save in Picturebox
   retval = BitBlt(Picture1.hdc, 0, 0, Picture1.Width, Picture1.Height, _
                    deskDC, windowpos.Left, windowpos.Top, SRCCOPY)
    Call ReleaseDC(deskWnd, deskDC)
    Picture1.Refresh
    'save in Clipboard
    Clipboard.SetData Picture1.Image, vbCFBitmap
    Clipboard.SetData Picture1.Image, vbCFDIB

но как сохранить в файл? и ОООчень хотелось бы это сделать вообще без использования Picturebox.
всем заранее спасибо, особенно за конкректный код. Ведь задачка вроде не то хитрая;)

З.Ы.
для простоты я прицепил готовый проект (3Кб) откуда взят этот код.
Вложения
BitBlt_Sample.zip
сохраняет в буфер снимки того места экрана которое закрывает формочка проекта, пардон там комменты на немецком.
(3.11 Кб) Скачиваний: 26
C уважением

Baloo

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 02.02.2006 (Чт) 19:25

const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

pronto
Постоялец
Постоялец
 
Сообщения: 597
Зарегистрирован: 04.12.2005 (Вс) 6:20
Откуда: Владивосток

Сообщение pronto » 03.02.2006 (Пт) 3:35

SavePicture Picture1.Image, "C:\my.bmp"

1. свойство PictureBox AutoRedraw = True
2. автоматически создает новый файл или перезаписывает старый.
3. сохраняет с глубиной цвета, которая выбрана в настройках Винды
O, sancta simplicitas!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 153

    TopList