Форум: "WinAPI";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
ВнизО прорисовке на битмапе Найти похожие ветки
← →
DmiSb (2005-01-12 09:18) [0]Уважаемые местера, дайте совет. Если я в отдельно процедуре рисую на битмапе текст, приходится вызывать её какждый раз при onPaint (перерисовавыть все заново). На медленной машине видно, как идет прорисовка, это не очень приятно. Да и в процедуре идут некоторые вычисления, что тоже подтормаживает. Может кто подскажет как это исправить ?
← →
tesseract (2005-01-12 10:50) [1]рисуё на отдельной канве потом BitBlt
← →
DmiSb (2005-01-12 11:36) [2]2 tesseract
Немного поясню как у меня : На ScrollBox кладу PaintBox (размер А4), затем на нем cоздаю BitMap и на нем рисую текст и пр. Если я буду рисовать на отдельной канве нужно ли для этого дополнительный BitMaр и не сильно ли это будет отедать память, все таки два больших BitMaр`а?
← →
DmiSb (2005-01-13 06:22) [3]Чёт не получается у меня. Нашел пример рисования через BitBlt/
var
MemDc : hdc;
dc : hdc;
MemBitmap : hBitmap;
OldMemBitmap : hBitmap;
При открытии формы
dc := GetDc(0);
MemDc := CreateCompatibleDc(dc);
MemBitmap := CreateCompatibleBitmap(dc, 100, 100);
ReleaseDc(0, dc);
В процедуре рисую
OldMemBitmap := SelectObject(MemDc, MemBitmap);
PatBlt(MemDc, 0, 0, 100, 100, WHITENESS);
Ellipse(MemDc, 0, 0, 100, 100);
BitBlt(PB.Canvas.Handle, 100, 100, 100, 100,
MemDc, 0, 0, SRCCOPY);
SelectObject(MemDc, OldMemBitmap);
В onPaint
BitBlt(PB.Canvas.Handle, 100, 100, 100, 100,
MemDc, 0, 0, SRCCOPY);
Освобождаю объекты только при закрытии формы
DeleteObject(MemBitmap);
DeleteDc(MemDc);
Рисоваться, то рисуется, но при скроллинге размазывается.
Может у кого есть примерчик ?
← →
Kerk © (2005-01-13 06:32) [4]DmiSb (13.01.05 6:22) [3]
перерисовывай при скролинге
← →
DmiSb (2005-01-13 11:03) [5]Kerk
перерисовывай при скролинге
В этом случае не перерисовывается вообще.
← →
DmiSb (2005-01-13 11:18) [6]Точнее сказать, он прорисовывается, но после того как отпускаешь скроллер. В время скроллирования вообще ничего нет.
← →
Kerk © (2005-01-13 12:37) [7]DmiSb (13.01.05 11:18) [6]
используй ScrollBox
← →
DmiSb (2005-01-13 13:46) [8]Дык я так и делаю. На форме лежит ScrollBox, на нем PaintBox заведомо больших чем он размеров. На него я накладываю временный рисунок. И тут возникает бяка :(
А примера нету ?
← →
Kerk © (2005-01-13 15:03) [9]DmiSb (13.01.05 13:46) [8]
покажи код рисования. не тот пример. а твою реализацию
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.047 c