When a grid window is placed on a tab control in a dialog the grid vanishes eventually. How can this be corrected?

You should call

m_grid.SetWindowPos( NULL, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);

where m_grid is the derived grid window.

If you have multiple tabs with Grid Windows, you will have to call this for the currently visible window.

This problem seems to happen because the tab window paints over the grid. This problem will not occur if you create the tab control with a Create call instead of using the dialog editor.