Это может быть сложно с CDialog, потому что, если вы не показываете CDialog, дескриптор окна не создается, и вы не можете вызвать GetClientRect.
Могу ли я предложить вместо этого создать CreateDialogIndirect, чтобы создать диалоговое окно, тогда вы можете получить прямоугольник клиента. Вам не нужно показывать диалог. Я думаю, что пока дескриптор окна создан, GetClientRect должен работать. Хотя я не эксперт, и прошло много лет с тех пор, как я написал код MFC.