Hallo,
kann mir jemand weiterhelfen wie man in DIrect2D beim C++Builder2010 die Bilder Transparent zeichnet?
#include <Direct2D.hpp>
void TForm1::Test()
{
FBitmap = new Graphics::TBitmap();
FBitmap->LoadFromFile(ExtractFilePath(Application->ExeName)+"test.bmp");
FBitmap->Transparent = true;
FBitmap->TransparentColor = RGB(0,255,0); // clLime
FBitmap->TransparentMode = tmFixed; // tmAuto
// FBitmap->Mask( RGB(0,255,0) );
if( !TDirect2DCanvas::Supported() )
{
ShowMessage("not supported! Only Windows 7 or Vista SP2");
exit (EXIT_FAILURE);
}
try
{
FD2DCanvas = new TDirect2DCanvas(Handle);
FD2DCanvas->RenderTarget->SetAntialiasMode(D2D1_ANTIALIAS_MODE_FORCE_DWORD) ;
//_di_ID2D1Bitmap bmp = FD2DCanvas->CreateBitmap(FBitmap);
}
catch(...)
{
delete FD2DCanvas;
FD2DCanvas = NULL;
MessageDlg("Direct2D can not be started.\n\nApplication will be closed", mtError, TMsgDlgButtons() << mbOK, 0);
exit (EXIT_FAILURE);
}
}
void __fastcall TForm1::Paint(void)
{
if (!FD2DCanvas)
return;
FD2DCanvas->BeginDraw();
//FD2DCanvas->Brush->Bitmap = FBitmap;
FD2DCanvas->Brush->Color = clBlack;
FD2DCanvas->FillRect(TRect(0,0,Width,Height));
FD2DCanvas->Pen->Color = clRed;
FD2DCanvas->Pen->Width = 3;
FD2DCanvas->MoveTo(0, 0);
FD2DCanvas->LineTo(ClientWidth, ClientHeight);
FD2DCanvas->MoveTo(0, ClientHeight);
FD2DCanvas->LineTo(ClientWidth, 0);
// FD2DCanvas->
FD2DCanvas->Draw(20,20,FBitmap);
FD2DCanvas->EndDraw();
}
kann mir jemand weiterhelfen wie man in DIrect2D beim C++Builder2010 die Bilder Transparent zeichnet?
#include <Direct2D.hpp>
void TForm1::Test()
{
FBitmap = new Graphics::TBitmap();
FBitmap->LoadFromFile(ExtractFilePath(Application->ExeName)+"test.bmp");
FBitmap->Transparent = true;
FBitmap->TransparentColor = RGB(0,255,0); // clLime
FBitmap->TransparentMode = tmFixed; // tmAuto
// FBitmap->Mask( RGB(0,255,0) );
if( !TDirect2DCanvas::Supported() )
{
ShowMessage("not supported! Only Windows 7 or Vista SP2");
exit (EXIT_FAILURE);
}
try
{
FD2DCanvas = new TDirect2DCanvas(Handle);
FD2DCanvas->RenderTarget->SetAntialiasMode(D2D1_ANTIALIAS_MODE_FORCE_DWORD) ;
//_di_ID2D1Bitmap bmp = FD2DCanvas->CreateBitmap(FBitmap);
}
catch(...)
{
delete FD2DCanvas;
FD2DCanvas = NULL;
MessageDlg("Direct2D can not be started.\n\nApplication will be closed", mtError, TMsgDlgButtons() << mbOK, 0);
exit (EXIT_FAILURE);
}
}
void __fastcall TForm1::Paint(void)
{
if (!FD2DCanvas)
return;
FD2DCanvas->BeginDraw();
//FD2DCanvas->Brush->Bitmap = FBitmap;
FD2DCanvas->Brush->Color = clBlack;
FD2DCanvas->FillRect(TRect(0,0,Width,Height));
FD2DCanvas->Pen->Color = clRed;
FD2DCanvas->Pen->Width = 3;
FD2DCanvas->MoveTo(0, 0);
FD2DCanvas->LineTo(ClientWidth, ClientHeight);
FD2DCanvas->MoveTo(0, ClientHeight);
FD2DCanvas->LineTo(ClientWidth, 0);
// FD2DCanvas->
FD2DCanvas->Draw(20,20,FBitmap);
FD2DCanvas->EndDraw();
}
Comment