Witam, napiszę jeszcze raz bo nie wiem z jakiej przyczyny mój post powędrował do kosza ? Mam problem, opisałem go, po 10 minutach dostałem odpowiedz, która nie jest związana z moim problemem.
(Mój problem to nie działająca funkcja floodfill() ,a nie wypełnienie formularza i narysowanie prostokąta , takim laikiem to ja nie jestem)
Po kolejnych 2 minutach patrzę, a mój post jest w koszu. No nie. Czy mój temat jest niewygodny czy co?
// twój poprzedni post usunąłem z uwagi na niewiele mówiący temat "floodfill" --> czyt. regulamin. Powiedzmy, że ten jest trochę lepsze, ale na przyszłość: pisz tematy, które opisują wątek w jakimś stopniu. - Deti
Proszę tego nie usuwać. Zależy mi na pomocy.
Witam,
mam problem bo potrzebuję funkcji FloodFill. Niestety nie ma w C# tak łatwo jak miałem w Delphi czy C++
(PaintBox1->Canvas->FloodFill(................)). Przeszukałem trochę internet i znalazłem, że można użyć biblioteki gdi32.dll i tam jest funkcja FloodFill. Mam tylko taki problem, że mi to nie działa :)
Robię coś takiego:
using System.Runtime.InteropServices;
public partial class Form1 : Form
{
[DllImport("gdi32")]
public static extern int FloodFill(int hDC, int x, int y, int crColor);
Graphics g;
public Form1()
{
InitializeComponent();
pictureBox1.Image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
g = Graphics.FromImage(pictureBox1.Image);
}
A pod przyciskiem mam kod
private void button1_Click(object sender, EventArgs e)
{
g.Clear(Color.White);
g.DrawRectangle(Pens.Black, 10, 20, 30, 40);
int x = 0;
x=FloodFill(g.GetHdc().ToInt32(), 1, 1, ColorTranslator.ToWin32(Color.Black));
pictureBox1.Refresh();
}
Czyli rysuję sobie prostokąt. A następnie chciałbym, żeby to co jest na zewnątrz tego prostokąta zostało zamalowane. Zauważyłem, że funkcja FloodFill zwraca 1 a to by oznaczało, że działa poprawnie (chyba).
Podejrzewam, że problem może być taki, że to maluje tylko na biało i tego nie widać. W C++ moglem sobie zmienić kolor pędzla (PainBox1->Canvas->Brush->Color=clRed) W C# nie ma czegoś takiego :(
Jakieś pomysły?