Размеры диалогового окна
Шаблон каждого диалогового окна содержит размеры, которые устанавливают позицию, ширину и высоту блока диалога и органов управления, содержащихся в нем. Эти размеры аппаратно не зависимы, так что прикладная программа может использовать единый шаблон для создания одного и того же диалогового окна для всех типов устройств отображения. Это гарантирует то, что диалоговое окно будет иметь те же самые пропорции и внешний вид на всех экранах, несмотря на различное разрешение и отношение сторон между экранами.
Размеры в шаблоне диалогового окна устанавливаются в единицах измерения шаблона диалога. Чтобы преобразовывать размеры из единиц измерения шаблона диалогового окна, в экранные единицы измерения (пиксели), используйте функцию MapDialogRect, которая принимает во внимание шрифт, используемый блоком диалога и правильно преобразует прямоугольник из единиц измерения шаблона диалога в пиксели. Для диалоговых окон, которые используют системный шрифт, Вы можете использовать функцию GetDialogBaseUnits, чтобы самостоятельно выполнить конверсионные вычисления, хотя использование функции MapDialogRect гораздо проще.
Шаблон должен устанавливать начальные координаты верхнего левого угла диалогового окна. Обычно, это координаты относительно верхнего левого угла рабочей области окна владельца. Когда шаблон устанавливает стиль DS_ABSALIGN или у диалогового окна нет владельца, эта позиция устанавливается относительно верхнего левого угла экрана. Система устанавливает эту первоначальную позицию, когда создает диалоговое окно, но дает возможность прикладной программе регулировать позицию блока диалога перед его показом. Например, приложение может извлечь габариты окна владельца, вычислить новую позицию, в которую помещает диалоговое окно в окне владельца, а затем установить позицию, используя функцию SetWindowPos.
Шаблон должен установить ширину и высоту диалогового окна, которые не должны быть больше ширины и высоты экрана, и гарантировать, что все органы управления находятся внутри рабочей области блока диалога. Хотя система и позволяет блоку диалога быть любого размера, но создавая окно, которое является или слишком маленьким, или слишком большим, можно воспрепятствовать пользователю обеспечить ввод данных, уничтожая предназначение диалогового окна. Многие прикладные программы используют более одного диалогового окна, когда имеется большое число органов управления. В таких случаях, первоначальное диалоговое окно обычно содержит одну или несколько кнопок, которыми пользователь может выбрать показ следующего диалогового окна.