المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : Rotating bitmap.



C++ Programming
10-09-2009, 03:26 PM
Hi. Well... I'am trying to make my own transparent button, but i need to rotate it to. I tryed to use SetWorldTransform function to make a rotation, but it results in clean dialog. Pls tell me what do i do wrong?


void MPictureBox::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{

CDC* pDC;
pDC = CDC::FromHandle(lpDrawItemStruct->hDC);
m_rtfmdc = new CDC;
m_rtfmdc->CreateCompatibleDC(pDC);
m_rtfmdc->SelectObject(m_bmp);

/* XFORM xf = {cos(angle), sin(angle),
-sin(angle), cos(angle),
0, 0};*/

int Rotate=1;
XFORM xf = {0,1,-1,0,0,0}; //angle = 90
int OldMode = SetGraphicsMode(*pDC,GM_ADVANCED);
SetWorldTransform(*pDC,&xf);

switch (MBStyle)
{
case MBUT_TRANSPARENT:
pDC->TransparentBlt(0,0,ButSize,ButSize,m_rtfmdc,ButSize*ImageNumb,0,ButSize,ButSize,RGB(0,0,0));
break;
case MBUT_SOLID:
pDC->BitBlt(0,0,ButSize,ButSize,m_rtfmdc,ButSize*ImageNumb,0,SRCCOPY);
break;

default:
MessageBoxA("Nepravilnie parametri prozrachnosti");
}
SetGraphicsMode(*pDC, OldMode);
m_rtfmdc->DeleteDC();
m_rtfmdc=NULL;
}