Steps to reproduce problem:
1. Create a window of a given width and height
2. Enable transparency
Now, this hides the OS chrome, but improperly, so events still use old client coordinates. The problem is not normally apparent as normally the window's final size is determined after it has been made transparent, and this resize causes a WM_NCCALCSIZE message to be sent, which recalculates the client area.
I believe there is a windows API that forces a WM_NCCALCSIZE message, although I forget whether it is RedrawWindow or SetWindowPos or something else.
After playing with SetWindowLong you should use:
SetWindowPos(hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER |
Neil, would you still consider this to be a valid bug? If not, we'd like to close it out.
It's still technically valid as per comment #1, although I don't remember whether we're "lucky" in that we call SetWindowPos anyway at some point.