PDA

Просмотр полной версии : Проецирование BMP


.ATK
19.05.2009, 01:55
Имеется следующая функция:

void DrawBitmap(HDC hdc, HBITMAP hBitmap, int xStart, int yStart, int r)
{
HDC hdcMem;
HDC hdcMask;
DWORD dwSize;
hdcMem = CreateCompatibleDC(hdc);
SelectObject(hdcMem, hBitmap);
GetObject(hBitmap, sizeof(BITMAP),(LPVOID) &bm);
StretchBlt(hdc, xStart, yStart,r,r, hdcMem, 0, 0,bm.bmWidth, bm.bmHeight, SRCAND);
DeleteDC(hdcMem);
}


HBITMAP hBitmap - *.bmp зелёненький кружочек на белом фоне..
Вызываю эту функцию и происходит следующее: кружочек движется сверху вниз, и уменьшается в радиусе... Внимание вопрос: как сделать, что бы он есчо и изменял цвет ?

BrainDeaD
19.05.2009, 02:54
думаю это (http://www.codeproject.com/KB/GDI/ImageProcessing.aspx?display=Print) тебе поможет

.ATK
19.05.2009, 03:25
кто поможет дам 300 рублей: http://Piramidalint.narod.ru/Laba_6.rar

Gar|k
19.05.2009, 17:10
кружочек можно и стандартной функцией GDI нарисовать

Функция Ellipse

Описание:
function Ellipse(DC: HDC, X1, Y1, X2, Y2: Integer): Bool;
Рисует эллипс, центpиpованный в огpаничивающем пpямоугольнике, гpаница котоpого наpисована текущим пеpом и заполнена текущей кистью
Паpаметpы:
DC: Идентификатоp контекста устpойства.
X1, Y1: Веpхний левый угол огpаничивающего пpямоугольника.
X2, Y2: Пpавый нижний угол огpаничивающего пpямоугольника.
Возвpащаемое значение:
Не нуль, если эллипс наpисован; нуль - в пpотивном случае.
функция находится в файле gdi32.dll


вот тебе мои функции некоторые полезные


// рисуем прямоугольнички
void DrawPryam(HDC hDC,COLORREF fon,COLORREF ramka,int nLeftRect,int nTopRect,int nRightRect,int nBottomRect,int border=1)
{
HBRUSH zaliv,hOldbr;
HPEN contr,hOldpen;

zaliv=CreateSolidBrush(fon);
contr=CreatePen(PS_SOLID,border,ramka);

hOldbr=(HBRUSH)SelectObject(hDC,zaliv);
hOldpen=(HPEN)SelectObject(hDC,contr);

Rectangle(hDC,nLeftRect,nTopRect,nRightRect,nBotto mRect);

DeleteObject(zaliv);
DeleteObject(contr);

SelectObject(hDC,hOldbr);
SelectObject(hDC,hOldpen);
}

void DrawLine(HDC hDC,COLORREF color,int sx,int sy,int ex,int ey,int size=1)
{
HPEN hRaz,hold_pen;
hRaz=CreatePen(PS_SOLID,size,color);
hold_pen=(HPEN)SelectObject(hDC,hRaz);

MoveToEx(hDC,sx,sy,NULL);
LineTo(hDC,ex,ey);

SelectObject(hDC,hold_pen);
}


http://msdn.microsoft.com/en-us/library/dd145203(VS.85).aspx - Windows GDI