WM_GETMINMAXINFO problem when window is maximized

I want to reduce (by 1 only pixel) the

height of a window when it is show maximized.

In my window procedure I have

the following code in C++:

case WM_GETMINMAXINFO:

LPMINMAXINFO

minmaxinfopunt = (LPMINMAXINFO) lParam;

minmaxinfopunt->ptMaxSize.y -=

1;

return 0;

Now a strange thing happen:

- with values from 1

to 16 (that is, from "minmaxinfopunt->ptMaxSize.y -= 1;" to

"minmaxinfopunt->ptMaxSize.y -= 16;") I always get the height previously

memorized in ptMaxSize.y, that is, the mazimized (by the system) height of the

window.

- with values equal or greater than 17 I get the height of the

window reduced as aspected.

I can I solve this problem?

Thanks.