CreateCompatibleDC и иже с ним

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

CreateCompatibleDC и иже с ним

Сообщение X-BOND » 24.06.2005 (Пт) 17:31

Что-то под вечер совсем мысли кончились

Такая ситуация, имеем форму, на которой различными Апишками рисуем всякие разности. Потом результат необходимо запомнить, чтобы в последствии можно было это все сново воспроизвести.

Что я делаю после того как все нарисовалось:

hMemDC = CreateCompatibleDC(hdc)
Call BitBlt(hMemDC, 0, 0, 500, 500, hdc, 0, 0, SRCCOPY)


Потом пытаюсь это воспроизвести:
Call BitBlt(hdc, 0, 0, 500, 500, hMemDC, 0, 0, SRCCOPY)
Функция возвращает 1, но ничего не рисует

Прасветите, пажалуста

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.06.2005 (Пт) 17:37

Надо ещё SelectObject для созданного устройства сделать...

Ищите в яиндексе примеры... Вот первый: http://www.vb.kiev.ua/ref/w32api/showdo ... mpatibledc

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 24.06.2005 (Пт) 17:43

А что мне SelectObject(hMemDC, сюда) скармливать ?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 24.06.2005 (Пт) 17:58

Form.Picture? Form.Image?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 24.06.2005 (Пт) 18:01

Так ведь их нету :?

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Re: CreateCompatibleDC и иже с ним

Сообщение Amed » 24.06.2005 (Пт) 18:05

X-BOND писал(а):...Такая ситуация, имеем форму, на которой различными Апишками рисуем всякие разности...


Это как - нету? Поясните ещё разочек, что есть и как рисуем.

Может быть, сначала
Form1.Picture=Form1.Image
,а потом
SelectObject(hMemDC, Form1.Picture)
?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 24.06.2005 (Пт) 18:21

Попробовал Form1.Picture=Form1.Image
Теперь просто все закрашивает цветом фона

А рисую в основном этим:
TransparentBlt
SetPixel
Rectangle


То-есть .Picture и .Image у меня никак до этого не используются

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 24.06.2005 (Пт) 18:28

Все, разобрался :)

Вот так заработало:

Dim hBmp As Long
hBmp = CreateCompatibleBitmap(hdc, 500, 500)
Call SelectObject(hMemDC, hBmp)
Call BitBlt(hMemDC, 0, 0, 500, 500, hdc, 0, 0, SRCCOPY)
...


Amed, спасибо за подсказку :wink:


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

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

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

    TopList