|
???????
//?????GDI+,????????GDI+?????????????
Graphics* CGrap::CImage::BeginGDIPlus()
{
if(NULL==m_pData)return NULL;
if(NULL==CImage::hDC)CImage::hDC=::CreateCompatibleDC(NULL);
if(NULL==CImage::hDC)return NULL;
if(m_bBitmapInvalid)
{
if(NULL!=m_hBitmap): eleteObject(m_hBitmap);
m_hBitmap=NULL;
if(NULL==(m_hBitmap=::CreateBitmap(m_W, m_H, 1, m_Type*8, m_pData)))return NULL;
m_bBitmapInvalid=false;
}
::SelectObject(CImage::hDC, m_hBitmap);
if(NULL!=CImage::pGDIPlusGrap)delete CImage::pGDIPlusGrap;
CImage::pGDIPlusGrap=NULL;
CImage::pGDIPlusGrap=new Graphics(CImage::hDC);
return CImage::pGDIPlusGrap;
}
void CGrap::CImage::EndGDIPlus()
{
if(NULL!=CImage::pGDIPlusGrap)delete CImage::pGDIPlusGrap;
CImage::pGDIPlusGrap=NULL;
}
???
CGrap::CImage img;
img.Create(8,8); //,CGrap::CImage::TYPE::RGBA,const_colors[CONST_COLOR::Blue].ColorValue
///*
Graphics *pGPG=img.BeginGDIPlus();
if(NULL!=pGPG)
{
//pGPG->DrawString(L"?????", -1,&Font(L"??", 10),PointF(0, 0),&SolidBrush(Color::Red));
pGPG->DrawRectangle(& en(&SolidBrush(Color::Red)),0,0,4,4);
}
img.EndGDIPlus();
tex[0].Create(img);
??GDI+??????????GDI+?????????????????m_pData??????????????????????GDI???????????? |
|