Thread Apfelmännchen
(11 answers)
Opened by Mampfgnom at 2010-11-10 08:42
also in Wx machst dus mit einer PainDC. ich hab ein programm was sowas kann, allerdings nicht open source deswegen nur der interessante teil:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 my $dc = $frame->{dc} = Wx::MemoryDC->new(); my $bmp = $frame->{bmp} = Wx::Bitmap->new( $maltafelgroesse, $maltafelgroesse ); $dc->SelectObject( $bmp ); leere_zeichenbrett(); my $maltafel = $frame->{tafel} = Wx::StaticBitmap->new( $panel, -1, $bmp); $dc->Clear(); $dc->SelectObject( $bmp ); $dc->SetTextForeground( Wx::Colour->new( 0,0,128) ); $dc->DrawText( $ziffer, $x, $y ); abd du wills ja pixel setzen nicht schrift dazu brauchst farbe mirt der pinsel deisinierst: Code (perl): (dl
)
1 2 3 4 5 6 7 push @farben, Wx::Colour->new( @$_ ) for @farbdef; push @pinsel, [Wx::Pen->new($_,5,&Wx::wxSOLID), Wx::Pen->new($_, 1, &Wx::wxSOLID), Wx::Brush->new($_, &Wx::wxSOLID) ] for @farben; $dc->SetPen( $pinsel[$nr][0] ); $dc->DrawLine( $xmax-30, $y, $xmax, $y); die genauen details findes in der normalen doku in der Wx::DC. der zeichnet recht schenll weil erst wenn updaten willst sagst: Code: (dl
)
1 sub erneure_maltafel { mit der maus ist gan einfach, schau in die wxperl tafel, siehe sig: Code (perl): (dl
)
1 2 EVT_LEFT_DOWN ( $panel, sub {$button[1]->SetLabel( 'touch the panel with left click' ) }); EVT_LEFT_UP ( $panel, sub {$button[1]->SetLabel( 'release the panel from left click' ) }); die callback sub bekommt als zweiten parameter das event objekt den mit $event->GetX und GetY fragen kannst wo cursor war. wenn ganzezeit ein rechteck zur ausgewählten fläche anzeigen willst musst natürlich auch noch Code (perl): (dl
)
EVT_MOTION ( $button[1], sub { }); abfangen. Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher Es beginnt immer mit einer Entscheidung. |