![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ассоциировать HDC со своей областью памяти
DevilDevil © (2008-04-12 06:27:00)Наверняка как то можно...
Вот мой и вопрос и состоит в "как это сделать?"
Допустим есть кусок памяти, который я хочу особым образом заподнить, как Битмап.
Заранее спасибо.
венн (2008-04-17 15:49:00) [21]даже не знаю че посоветовать
DevilDevil (2008-04-17 10:16:00) [22]> Sapersky (16.04.08 20:32) [5]
к слову говоря, вчера-сегодня штудирую исходники AnyDX2D_v0.5 :))
хочу объединить методы Lock и GetDC у поверхности.
в хелпе написано, что GetDC на самом деле использует Lock, стало быть, моя задумка осуществима.
> Никакие DC при этом не создаются
не... вообще говоря, именно Канвас и хочется получить... А "ScanLine" доступен всегда )
P.S. что делать то ??
Sapersky (2008-04-16 20:32:00) [23]Допустим есть кусок памяти, который я хочу особым образом заподнить, как Битмап.
A что конкретно требуется? Может, прямо так и заполнить участок памяти, безо всяких битмапов/DC.
Или использовать FastLIB, который позволяет "навесить" TFastDIB на произвольный участок памяти. Никакие DC при этом не создаются, т.е. функции GDI использовать нельзя, но можно использовать работающие через Scanline/Pixels (т.е. практически все) функции FastLIB.
DevilDevil (2008-04-16 20:11:00) [24]> slow!alfamoon!com (16.04.08 17:47) [3]
)) а с остальным как быть ?
slow!alfamoon!com (2008-04-16 17:47:00) [25]
> Первый параметр - DC. Т.е. я его сначала должен создать.
> .. Как создать DC, который будет использоваться для "изменения
> моей памяти" О_о?
>
Проще всегО вам сделать совместимый c экраном DC. Т.е. CreateCompatibleDC(GetDC(0),...)
конкретно с СreateDC я не работал..
DevilDevil (2008-04-16 15:45:00) [26]> slow!alfamoon!com (12.04.08 11:42) [1]
спасибо.
Тут куча параметров. Непонимаю. Помогите разобраться.
Первый параметр - DC. Т.е. я его сначала должен создать... Как создать DC, который будет использоваться для "изменения моей памяти" О_о?
Смысл следуюшие 6 параметров неясен: XDest, YDest, dwWidth, Height, XSrc, YSrc. Ну... Wisth и Height - стало быть ширина и высота "канваса", стало быть - ширина и высота моего "битмапа". Остальные 4 параметра - смещения - в моём случае наверное нули. Если параметры "смещение в битмапе" мне могут быть ясны, то параметры "смещение в канвасе" мне неясны совсем. Или я неправильно понял? А параметры указываются в пикселах ?
предназначение следующих 2х параметров (ScanLine-ы) тоже не понятны.
указатель на "мою память" и "описание битмапа" ясны.
если изображение беспалитровое, то fuColorUse = DIB_RGB_COLORS ?
Ещё немаловажный вопрос!
в стандартном битмапе память идёт "снизу вверх", т.е. указатель на данные в битмапе указывают на данные в последней строке пикселей битмапа. А возможно ли (без свапа строк) создать HDC по памяти, строки пекселей в которой идут сверху вниз ?
Извиняюсь за нехорошее объяснение :))
Надеюсь на помощь.
slow!alfamoon!com (2008-04-12 11:42:00) [27]А в чем собственно проблема? Формируйте битмап в памяти и SetDIBitsToDevice или StretchDIBitsToDevice в требуемый HDC