границы поля для рисунка в DC

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

границы поля для рисунка в DC

Сообщение NicSoft » 15.02.2004 (Вс) 21:53

я создаю DC при помощи этих API:
Код: Выделить всё
CompDC = CreateCompatibleDC(Picture1.hdc)
OldBM = SelectObject(CompDC, Picture1.Picture)

как присвоить CompDC поле, не ограниченное рамками Picture1.Picture, а по возможности бесконечно большое???

SergeySV
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 124
Зарегистрирован: 17.04.2003 (Чт) 14:39
Откуда: Россия, Москва

Re: границы поля для рисунка в DC

Сообщение SergeySV » 16.02.2004 (Пн) 11:50

NicSoft писал(а):я создаю DC при помощи этих API:
Код: Выделить всё
CompDC = CreateCompatibleDC(Picture1.hdc)
OldBM = SelectObject(CompDC, Picture1.Picture)

как присвоить CompDC поле, не ограниченное рамками Picture1.Picture, а по возможности бесконечно большое???


Если ты хочешь создать битмап больший чем в Picture, тогда это уе будет не несовместимый (на Compatible).

Вместо CreateCompatibleDC сам создавая свой битмап CreateBitmap и вперед, но когда захочешь его отобразить в Picture1 придется сделать несколько действий по действий по подгонке твоего битмапа под Picture/

Declare Function CreateBitmap Lib "gdi32" Alias "CreateBitmap" (ByVal nWidth As Long, ByVal nHeight As Long, ByVal nPlanes As Long, ByVal nBitCount As Long, lpBits As Any) As Long
Главное двигаться не быстрее, чем думает твоя голова.

NicSoft
Обычный пользователь
Обычный пользователь
 
Сообщения: 80
Зарегистрирован: 05.04.2003 (Сб) 18:51
Откуда: Егорьевск

Сообщение NicSoft » 17.02.2004 (Вт) 14:04

При использовании CreateCompatibleBitmap, когда размеры превышают где-то 7000 пикселей (я подозреваю, что эта цифра зависит от размера памяти), возвращается 0.
При использовании CreateBitmap тоже самое случается при достижении примерно 50000 пикселей. Но для моих целей этого всё равно маловато.
Я делаю что-то наподобие карты. На этом форуме уже много говорилось как перемещатся, увеличивать, уменьшать карту, но нигде подробного ответа так и не нашёл. Пробывал применять два PictureBox-а (один в другом) и изменять свойства TOP и LEFT, но это дело вообще тормозное.
Что же делать с большими растрами-то?


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

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

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 2

    TopList