Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

прямой доступ к памяти device context а...   Найти похожие ветки 

 
wicked ©   (2004-07-22 11:56) [0]

сори, если сумбурно звучит тема...
необходимо поиметь указатель на область памяти, используемой GDI для отображения всего того, что рисуется в определенном device context"е....
пока дошел до такого варианта (псевдокод):

dc = GetDC(<handle окна>);
mem_dc = CreateCompatibleDC();
mem_bm = CreateCompatibleBitmap(); // создаем битмап в памяти

old_bm = SelectObject(mem_dc, mem_bm);
BitBlt(mem_dc, <coords...>, dc, <coords...>); // теперь изображение dc находится в mem_bm
SelectObject(mem_dc, old_bm);

LPBITMAPINFO lpbm = alloc();
GetDIBits(dc, mem_bm, <coords>, NULL {указатель на биты изображения}, lpbm); // получаем параметры битмапа
bit_size = <подсчет кол-ва байтов для битов изображения>;
bits = alloc(bit_size);

// получаем копию битмапа в наш блок памяти
GetDIBits(dc, mem_bm, <coords>, bits, lpbm);
// тут рисуем в bits всё, что угодно
// возвращаем изображение в блоке памяти назад в битмап
SetDIBits(dc, mem_bm, <coords>, bits, lpbm);

// копируем битмап на активный dc окна
old_bm = SelectObject(mem_dc, mem_bm);
BitBlt(dc, <coords...>, mem_dc, <coords...>);
SelectObject(mem_dc, old_bm);
// подметаем за собой


как видно из примера, делается аж две копии изображения оконного device context"а, чего хотелось бы избежать...
какие будут соображения?...
наперед спасибо...


 
wicked ©   (2004-07-22 19:41) [1]

подниму ветку - вдруг кто-то делал такое.....


 
wicked ©   (2004-07-23 11:37) [2]

последний раз подниму ветку... а вдруг?...


 
wicked ©   (2004-07-23 18:37) [3]

а вот, что требовалось - http://www.rsdn.ru/?Forum/Message/81784.htm
может кому надо будет...

ЗЫ монолог такой нехилый вышел.... :)



Страницы: 1 вся ветка

Текущий архив: 2004.09.05;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.04 c
14-1092652587
КаПиБаРа
2004-08-16 14:36
2004.09.05
Человеку который хотел добавить нолики впереди числа


14-1092834583
panov
2004-08-18 17:09
2004.09.05
Версия FreeBSD


4-1090302822
acidman
2004-07-20 09:53
2004.09.05
LPT под win2k/XP/NT


3-1092045355
Leons
2004-08-09 13:55
2004.09.05
Динамический запрос к таблице acess


6-1088176360
Сергей Г
2004-06-25 19:12
2004.09.05
E-Mail адрес