· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.WIN32 —› Как мне создать HBITMAP одно определённого(сплошно

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Авг 31, 2003 00:27:18

Как мне создать HBITMAP одно определённого(сплошного) цвета???


Дата: Авг 31, 2003 01:25:00 · Поправил: Sk. Inc.

Попробуй перефразировать вопрос понятней: hWnd - хэндл окна, аналогично HBITMAP - это хэндл битмапа.


Дата: Авг 31, 2003 02:09:35

invoke CreateBitmap,50,50,1,1,0
создаёт битмап размером 50х50 белого цвета.


Дата: Авг 31, 2003 12:06:32

Блин. Мне не нужен белый цвет!!!
А как седлать что бы BITAMP был другого цвета???


Дата: Авг 31, 2003 15:04:54

Вот выдержка из MSDN'a от Visual Studio 6 (на английском).
Похоже что последний передаваемый параметр - указание на массив с описанием цвета.

380631479__CreateBitmap.html


Дата: Авг 31, 2003 15:50:07

Я не понимаю это "Pointer to an array of color data used to set the colors in a rectangle of pixels. Each scan line in the rectangle must be word aligned (scan lines that are not word aligned must be padded with zeros). If this parameter is NULL, the new bitmap is undefined. "


Дата: Авг 31, 2003 16:52:42

Извини, как это работает я и сам не знаю. Перерыл все имеющиеся у меня примеры и исходники, но там указатель на массив не используется :-(


Дата: Авг 31, 2003 18:59:29 · Поправил: Quantum

Songoku
Мне не нужен белый цвет!!!
Зачем орать-то? Я и сам знаю, что не нужен. Просто вы потом загрузите этот пустой битмап в контекст, закрасите через FillRect, выгрузите обратно из контекста и будет у вас витмап нужного цвета. Вот пример:
invoke CreateCompatibleDC,0
mov hMemDC,eax
invoke CreateCompatibleBitmap,eax,WIDTH,HEIGHT
invoke SelectObject,hMemDC,eax
mov hBmp,eax
mov rc.left,0
mov rc.top,0
mov rc.right,WIDTH
mov rc.bottom,HEIGHT
invoke GetStockObject,LTGRAY_BRUSH
invoke FillRect,hMemDC,OFFSET rc,eax
invoke SelectObject,hMemDC,hBmp
mov hBmp,eax   ; <- Получаем серый битмап

ЗЫ: Только не скажите, что вам не нужен серый цвет :)


Дата: Авг 31, 2003 20:35:11

У е у е ... Конечно нужен вот только но не сплошной!!!
Но это уже блиско!!!
Всем большое спасибо.
Дальше я попробую сам скакать!!!
Но если у когонибудь что нибудь есть быо бы не плохо если вы мне это покажите!!!

Может кто знает где есть документация по GDI??


Дата: Авг 31, 2003 22:33:13

К Songoku
Братан, ты на свой первый вопрос посмотри. Там ты требовал СПЛОШНОЙ цвет, а теперь выясняется, что тебе надо несплошной. Так сразу спрашивать надо. Это реализуется другими методами в зависимости от того, какой несплошной тебе нужен.


Дата: Сен 1, 2003 17:11:27

2 SolidCode придяви пример!!!


Дата: Сен 1, 2003 18:19:47

Songoku
А что значит "несплошной"? Всякоразные пиксельные узоры, так? Тогда вместо "GetStockObject,param" нужно создать кисть (brush) с узором. Принцип остаётся тот же.


Дата: Сен 1, 2003 19:13:24

Например, если нужен вертикальный градиент от белого к чёрному (левая колонка пикселей белая, правая - чёрная), то можно разделить размер по горизонтали на 256 (возьмём 256 градаций) и полученное количество пикселей последовательно до конца закрашивать так:
00FFFFFF,00FEFEFE,00FDFDFD,00FCFCFC и т.д.
Когда готова первая строчка пикслей, её можно скопировать вниз на следующие.
Получится вертикальный градиент.
А вообще, я не спец по графическим алгоритмам. Пока что.
Но вопрос остаётся: скажи конкретно, что надо, а там уже надо смотреть, как это реализовать.

ЗЫ На математическом уровне с графикой хорошо работает Том. Это профессор вышмата из Англии. На Wasm-е в исходниках по графике есть много его работ.


Дата: Сен 2, 2003 00:48:14

Вот придставь!!! Мне нужен РИСУНОК КАТОРЫЙ СОСТОИТ ТОЛЬКО ИЗ ОДНОГО ЦВЕТА НАПРИМЕР RGB(255,128,64)!!!


Дата: Сен 2, 2003 06:44:29

invoke CreateSolidBrush,4080FFh
И этой самой кистью заполняй свой битмап через FillRect как в том примере. Токо не забудь потом удалить кисть шоб ресурсы впустую не тратить.

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044