QB: You don't need to bypass the built in functions, MaxGUI has commands for this.
If BMax did not do this for the Graphics Window, then you would need to use the API commands to get the client area so you would know what size to use for your graphics, backgrounds, etc. If you are NOT sizing by the client-size, then the client area will be very different from system to system depending on the theming being used. I am guessing this is why the Graphics Window sizes by the client area so your game will be displayed in the proper dimensions on all systems.
If you want to size your window differently, then you need to use MaxGUI or use the API commands.
There is a function here which does not do what it's supposed to do
The Graphics Window command sets the window size by the client area, that is what it is supposed to do. The commands to get the size will naturally only return the size of the client area since that is the graphics object. This is what it is supposed to do. If BMax did not do this for the Graphics Window, then you would need to use the API commands to get the client area so you would know what size to use for your graphics, backgrounds, etc. If you are NOT sizing by the client-size, then the client area will be very different from system to system depending on the theming being used. I am guessing this is why the Graphics Window sizes by the client area so your game will be displayed in the proper dimensions on all systems.
If you want to size your window differently, then you need to use MaxGUI or use the API commands.
doesn't see why he should have to delve into writing his own window management
If you are writing a program for Windows or Linux or OS X, you will always have to write your own message handler to properly deal with the messages received by the window of your program. This is how the operating systems work.