Now you know I'm not really a Windows GUI expert. I'm going to look now at updating my applications in the same manner as Laurent updated the sample code.

But I've recently noticed something in the sample bitmap scrolling code, which I am gratefully using in a couple of my applications, which is more obvious when displaying Black & White line art that extends to the very edge of the BMP, rather than full-color images, although once you know to look for it, it can be seen with full-color images also.

When scrolling to the complete right/bottom of a bitmap in a smaller window, especially when scrolling via "pages" by clicking on the empty area of the scroll bar, it becomes clear that the right-/bottom-most column/row of pixels in the window does not get redrawn at the very end. It is like there is an off-by-one error somewhere in the code.

Now I notice the scrolling limits are based on Win32::GUI::Width, and that Win32::GUI::Width calculates width as Right-Left. Now I don't know the Windows spec well enough to know if it should be Right-Left+1 -- in other words, in Right the last drawable pixel, or the first non-drawable pixel? Of course, maybe the off-by-one error is somewhere else instead; this possible source of the off-by-one is just speculation on my part that I haven't yet confirmed or discarded by reading the Windows documentation. But the scrolling bug exists, regardless of where the off-by-one error creeps in.


On approximately 9/30/2004 12:01 AM, came the following characters from the keyboard of Jez White:
Hi,
I've just tested the changes to the -onpaint event and it looks good:) Cheers, jez.

    ----- Original Message -----
    *From:* Laurent ROCHER <mailto:[EMAIL PROTECTED]>
    *To:* perl-win32-gui-hackers@lists.sourceforge.net
    <mailto:perl-win32-gui-hackers@lists.sourceforge.net>
    *Sent:* Wednesday, September 29, 2004 10:22 PM
    *Subject:* [perl-win32-gui-hackers] Main Commit

    Hi,
Changelog - MakeFile.pl, MakeFile_m.pl
            + Use tab as space in rule for use with dmake
        - GUI.pm, GUI.xs
            + Add -brush option for Win32::GUI::Class.
        - GUI_Helper.cpp
            + classname_From and handle_From : Replace strlen as static
    string length.
        - Window.xs, GUI_MessageLoops.cpp, Samples\BitmpaScroll.pl :
            + Move Paint event in Window_onEvent.
            + Use DoEvent_Paint function like Graphic
        - ToolTip.xs :
            + Add -balloon option
Laurent.

--
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.

Reply via email to