Размеры и пропорции диалоговых окон
От: ZUser  
Дата: 11.12.03 18:40
Оценка:
Есть программа под Windows, откомпилированная в VS7. Она использует диалоговое окно, описанное в ресурсном скрипте так (выдержки):

IDD_MAINWND DIALOGEX 0, 0, 399, 152
STYLE DS_ABSALIGN | DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER |
WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
DEFPUSHBUTTON "=",IDC_BTNEQUAL,300,124,91,21
END

При запуске программы под WinXP диалоговое окно имеет такие размеры (по данным Spy++, разрешение экрана 1024*768):
rectangle 704*367
client rect 698*304
и для кнопки:
rectangle 159*42
client rect 159*42

А если запустить программу под Win98 или WinME, тем же Spy++ при том же разрешении получаем результаты для окна:
rectangle 804*358
client rect 798*304
и для кнопки:
rectangle 182*42
client rect 182*42

Это видно и зрительно — окно и кнопка растянуты по горизонтали по сравнению с их размерами под WinXP.
Перекомпиляция проекта в VS6 не помогла. В книгах по WIN API тоже не нашёл ничего похожего на эту проблему.

Может ли кто-нибудь подсказать, как сделать одинаковым зрительное представление окна в этих случаях
(а заодно объяснить, почему возникает такое нарушение пропорций)?
Попутный вопрос — в каких единицах в ресурсном скрипте записываются координаты и размеры окон
(т. е. что значит IDD_MAINWND DIALOGEX 0, 0, 399, 152)?
Заранее спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.