Robert May <[EMAIL PROTECTED]> wrote:    <snip>
   
  > 2. In the example code below, AbsLeft and AbsTop do not work as (I) 
expected. AbsLeft moves the Y coordinate and AbsTop moves the X coordinate. I 
expected these coordinates to not change. Is my understanding correct?

[ snip code ]

Indeed, there seems to be a problem with AbsLeft and AbsTop, although 
it's not clear to me from either the documentation or the code what 
they're meant to do. I would assume that they're meaning to set the 
window position in Screen co-ordinates, as they retrieve the screen 
co-ordinates, but then use them as client co-ordinates ...

In your example of AbsLeft(), the window moves down, as the top 
co-ordinate is read in screen co-ordinates, and then used as a client 
co-ordinate when setting the window position.

The code also looks like it might have been trying to leave the 
bottom-right corner of the window unmoved, although I think this is 
unlikely to what is expected.

I wouldn't expect the behaviour to be the same as the Left/Top methods, 
as if this was intended, then the implementation would, almost certainly 
have been done as an alias for Left/Top.

I've raised a bug report, which includes a short script showing the problem:
https://sourceforge.net/tracker/index.php?func=detail&aid=1578492&group_id=16572&atid=116572
and propose to 'fix' the behaviour of these 2 calls to be setting the 
co-ordinate of the window in screen co-ordinates. Any objections?
      It is as I expected, you have anticipated and done
    exactly the right thing with the minimum of effort.
    Thanks.
  

Regards,
-- 
Robert May
Win32::GUI, a perl extension for native Win32 applications
http://perl-win32-gui.sourceforge.net/



Reply via email to