If I have a button control on a window, say MyButton, and I want to change its position to the left by a fixed amount from its current position. In pseudo terms:
Code:
MyButton.x = MyButton.x + amount;
Naturally I thought using a GetWindowRect()/SetWindowPos() combo would be the way, but in classic winApi fashion, Windows has gotten everything mixed up again: apparently SetWindowPos operates on client co-ordinates (upper left of parent window is origin) whereas GetWindowRect operates on screen co-ordinates.
So what function(s) would I use to get MyButton's current x position and increase by a certain amount?

I've even tried compensating for the difference between client and screen coordinates by subtracting the button's left value by its window's left value to try to obtain its relative client coordinates, but alas its not as easy as this... I mean c'mon... how hard is it to make a GetWindowPos function to complement SetWindowPos' use of client co-ordinates.