Unrendered area on Intel OpenGL Win7 (with sample code & screenshots)
I wrote an OpenGL program which includes a caption at the top of each view. This is achieved by overriding OnNcPaint() and OnNcCalcSize() in the view. This works on my machine, but one user (and probably many others) has a problem under Windows 7 on a laptop with Intel on-board graphics. The OpenGL area isn't being shifted down by the caption. The geometry in the view is higher than it would be (making things difficult to select with the mouse), and leaves an unrendered section at the bottom of the view (the section is the same height as the caption above). See screenshots.
I adapted the MSDN Cube sample OpenGL program to demonstrate this effect. Code attached. To find my changes, look for "NEW_CODE" in CubeView.cpp. I left a deliberately unrendered area to the right of the caption, to see whether the OpenGL area would fill there since it was shifted up, but interestingly it doesn't. Ignore that and look at the gap at the bottom in the screenshot from the buggy machine (I include one correct screenshot from my machine, and a bad one from the user's machine).
Am I doing this the wrong way? Maybe since it works on other machines I'm doing the right thing, and Intel's OpenGL is buggy (again), but is there a way to work around this?
Any ideas appreciated,