Hi
also look to this link about drawing and refreshing:
http://www.nabble.com/Draw-on-click-and-refresh-the-window---resolved-td18093899.html
and the two tutorials by rob may about drawing and refreshing:
http://www.mail-archive.com/perl-win32-gui-users@lists.sourceforge.net/msg05194.html
http://www.mail-archive.com/perl-win32-gui-users@lists.sourceforge.net/msg05195.html

also before three days i have found an example in the win32gui demos :
demos\DIBitmap\ the first is test8.pl and test13.pl  they draw a circle
without any flickering, they use GD graphics with DIBitmap, first install GD
Graphics from this site:http://www.bribes.org/perl/ppmdir.html
using the command:
ppm install http://www.bribes.org/perl/ppm/GD.ppd
and try the test8.pl and test13.pl, the GD graphics have many plotting
statements for drawing lines, polygons, points, etc


Raphael Stoeckli wrote:
> 
> Hi @ all
> 
> I try to plot a static DC-Object (means: the graphic is calculated
> uniquely
> at runtime, depending of several parameters, and does not change while
> displaying the window) in a window.
> The problem is that this object continuously needs to be redrawn, because
> it
> vanishes during moving the window around, or if an other window is moving
> over it. 
> I thought, a repaint-routine like that would solve the problem:
> -------------------------------------
> use strict;
> use Win32::GUI();
> our $WIN;
> our %DC;
> 
> &build_gui;
> Win32::GUI::Dialog();
> 
> sub build_gui # Building the GUI
> {
> $WIN = new Win32::GUI::Window(
>       -left => 200, -top => 200, -width  => 300, -height => 300,
>       -name   => "WIN",
>       -text   => "Static-DC-Test",
>       #-noflicker => 1, # Useless/worse result
>       );
> $WIN->Show();
> $DC{'color'}{'white'} = [255,255,255];
> $DC{'color'}{'red'} = [255,0,0];
> $DC{'pen'} = new Win32::GUI::Pen( -color => $DC{'color'}{'red'}, -width =>
> 3, );
> $DC{'brush'} = new Win32::GUI::Brush( -color => $DC{'color'}{'white'},
> -width => 1, );
> &repaint;
> $DC{'timer'} = $WIN ->AddTimer("timer", 100);
> }
> 
> sub ::timer_Timer # Repaint DC with interval of 'timer'
> { &repaint; }
> 
> sub WIN_Terminate { return -1; }
> 
> sub repaint # Create/rebuild DC-Object
> {
> $DC{'dc'}{'object'} = $WIN -> GetDC;
> $DC{'dc'}{'object'} -> FillRect(10, 10, 280, 260,$DC{'brush'});
> $DC{'dc'}{'object'} -> SelectObject($DC{'pen'});
> $DC{'dc'}{'object'} -> BeginPath();
> $DC{'dc'}{'object'} -> MoveTo(10, 10);
> $DC{'dc'}{'object'} -> LineTo(280, 260);
> $DC{'dc'}{'object'} -> EndPath();
> $DC{'dc'}{'object'} -> StrokePath();
> #$DC{'dc'}{'object'}   -> Save(); # ??? Save() --> Restore() ???
> }
> -------------------------------------
> But the result of the code above is a flickering, annoying graphic.
> So the next thought, was to generate a bitmap from the DC. There is, if
> I’m
> not wrong, a method with DIBitmap. But, I would like to refrain from
> binding
> in that module, only for converting a single graphic, because it’s
> bloating
> up the program/PAR-binary.
> 
> 
> Sadly, the DC-Documentation is frequent a sealed book for me.
> Does anyone know an easy method (I also like to take a complex solution
> :-))
> to convert a DC into a bitmap-object, without using DIBitmap? Or, even
> better, a way to prevent that flickering during the repaint?
> 
> Thanks a lot.
> 
> Regards,
> Raphael
> 
> 
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco,
> CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the
> Enterprise
> -Strategies to boost innovation and cut costs with open source
> participation
> -Receive a $600 discount off the registration fee with the source code:
> SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Perl-Win32-GUI-Users mailing list
> Perl-Win32-GUI-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
> http://perl-win32-gui.sourceforge.net/
> 
> 

-- 
View this message in context: 
http://www.nabble.com/flickering-static-DC-tp22404906p22411762.html
Sent from the perl-win32-gui-users mailing list archive at Nabble.com.


------------------------------------------------------------------------------
_______________________________________________
Perl-Win32-GUI-Users mailing list
Perl-Win32-GUI-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-users
http://perl-win32-gui.sourceforge.net/

Reply via email to