Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ассоциировать HDC со своей областью памяти


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо