Hi,

I've had a little look at this - and I can reproduce your problem. I don't think this is a bug with win32::gui.

From memory the InvalidateRect did fix things, but I don't think the same
approach would work for the current version of this example.

In a normal operation, InvalidateRect(1) would cause that window to be redrawn, with the whole background being painted first. In the samples case, we have set various options to stop the background being drawn (the clipchildren flags and the wc class), this stops the flicker but we have to manually repaint the background when required. When a smaller sized bitmap is opened, the BitBlt only paints the bitmap, even though it has been given coordinates to repaint the whole window. Somehow, the window will have to be manually cleared in those situations (using FillRect with the system brush?). I think that should fix things...

I think:)

Cheers,

jez.



----- Original Message ----- From: "Glenn Linderman" <[EMAIL PROTECTED]>
To: "Win32 GUI Hackers" <perl-win32-gui-hackers@lists.sourceforge.net>
Sent: Tuesday, October 26, 2004 4:45 AM
Subject: [perl-win32-gui-hackers] noflicker, bitmaps, and painting the background, 0.99_1


Hi,

So I have my application that borrows liberally from the sample code BitmapScroll.pl.

So in my application, I change the size of the bitmap I'm displaying, within a window that sometimes can display the whole thing... and sometimes has a right/bottom border of background around it. (One might consider centering the image in that case, but I haven't gotten that far!).

Anyway, I noticed a phenomenon: When I switch from big bmp to little bmp, the background doesn't get redrawn so portions of the bigger bitmap are still visible.

I recall that this was a problem with an early version of the sample, and Jez, you were able to fix it somehow. I guess that was before I really figured out much about how it worked, because I don't know what you fixed.

I've made changes to the sample, in the name of fixing off by one errors, and scrollbar settings, and such; and then Laurent changed the way Paint worked. And some of my fiddlings were after Laurent.

Somewhere along the line, it broke... display a large bitmap, and then a small one, and the large one still has portions remaining on the screen.

It seems that InvalidateRect(1) is called for the window when bitmap sizes are changed, and I sort of thought that was the change that fixed it, but I could be wrong. But that is still there.

--
Glenn -- http://nevcal.com/
===========================
The best part about procrastination is that you are never bored,
because you have all kinds of things that you should be doing.


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
Perl-Win32-GUI-Hackers mailing list
Perl-Win32-GUI-Hackers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perl-win32-gui-hackers


Reply via email to