Ĺadny brzuch
Witam.
Napisałem sobie funkcję która rysuje mi obrazek na wskazanym komponencie
TCanvas *C = new TCanvas;// stworzenie obiektu typu Canvas Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); if (OpenDialog1->Execute()) { try { C->Handle = GetDC(RadioGroup1->Handle); pBitmap->LoadFromFile(OpenDialog1->FileName); pBitmap->Transparent = true; pBitmap->TransparentColor = pBitmap->Canvas->Pixels[2][2]; C->Draw(0,0,pBitmap); pBitmap->TransparentMode = tmAuto; } catch (...) { ShowMessage("Could not load or display bitmap"); } delete pBitmap; ReleaseDC(0, C->Handle); delete C; }
Obrazek jest rysowany na obiekcie (tutaj na RadioGroup) ale w miejscu gdzie pojawia się tekst jest on przykryty przez szary prostokąt otaczający tekst. Tak samo dzieje się kiedy rysuje po Buttonie. Ktoś wie co należy zrobić aby rysunek nie był przysłonięty przez ten szary prostokąt? (aby tekst był wyświetlany bezpośrednio na obrazku a nie na szarym tle)
Pewnie nie do konca o to ci chodzilo, dziala o ograniczonym zakresie, tzn jesli obrazek jest jednolity w obszarze napisu
TCanvas *C = new TCanvas;// stworzenie obiektu typu Canvas Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); try { C->Handle = GetDC(Button1->Handle); pBitmap->LoadFromFile("1.bmp"); pBitmap->Transparent = true; pBitmap->TransparentColor = pBitmap->Canvas->Pixels[2][2]; C->Draw(0,0,pBitmap); C->Brush->Color = pBitmap->Canvas->Pixels[-5+Button1->Width/2][Button1->Height/2]; C->TextOutA(-5+Button1->Width/2, Button1->Height/2, "Jakis text"); //pBitmap->TransparentMode = tmAuto; } catch (...) { ShowMessage("Could not load or display bitmap"); } delete pBitmap; ReleaseDC(0, C->Handle); delete C;
Użytkownik Nodnol edytował ten post 30 październik 2007, 10:16
Albo spróbuj C->Brush->Style = bsClear;
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Napisałem sobie funkcję która rysuje mi obrazek na wskazanym komponencie
TCanvas *C = new TCanvas;// stworzenie obiektu typu Canvas Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); if (OpenDialog1->Execute()) { try { C->Handle = GetDC(RadioGroup1->Handle); pBitmap->LoadFromFile(OpenDialog1->FileName); pBitmap->Transparent = true; pBitmap->TransparentColor = pBitmap->Canvas->Pixels[2][2]; C->Draw(0,0,pBitmap); pBitmap->TransparentMode = tmAuto; } catch (...) { ShowMessage("Could not load or display bitmap"); } delete pBitmap; ReleaseDC(0, C->Handle); delete C; }
Obrazek jest rysowany na obiekcie (tutaj na RadioGroup) ale w miejscu gdzie pojawia się tekst jest on przykryty przez szary prostokąt otaczający tekst. Tak samo dzieje się kiedy rysuje po Buttonie. Ktoś wie co należy zrobić aby rysunek nie był przysłonięty przez ten szary prostokąt? (aby tekst był wyświetlany bezpośrednio na obrazku a nie na szarym tle)
Pewnie nie do konca o to ci chodzilo, dziala o ograniczonym zakresie, tzn jesli obrazek jest jednolity w obszarze napisu
TCanvas *C = new TCanvas;// stworzenie obiektu typu Canvas Graphics::TBitmap *pBitmap = new Graphics::TBitmap(); try { C->Handle = GetDC(Button1->Handle); pBitmap->LoadFromFile("1.bmp"); pBitmap->Transparent = true; pBitmap->TransparentColor = pBitmap->Canvas->Pixels[2][2]; C->Draw(0,0,pBitmap); C->Brush->Color = pBitmap->Canvas->Pixels[-5+Button1->Width/2][Button1->Height/2]; C->TextOutA(-5+Button1->Width/2, Button1->Height/2, "Jakis text"); //pBitmap->TransparentMode = tmAuto; } catch (...) { ShowMessage("Could not load or display bitmap"); } delete pBitmap; ReleaseDC(0, C->Handle); delete C;
Użytkownik Nodnol edytował ten post 30 październik 2007, 10:16
Albo spróbuj C->Brush->Style = bsClear;