Вопрос № 78896: Здравствуйте.
Подскажите плиз, почему у меня окно диалога не центрируецца при запуске? Все флаги вроде установлены. Активизирую так:
call GetModuleHandleA,0
mov hInst,eax
call DialogBoxParamA, hInst, 101, 0, offset mDlgProc, 0...
Вопрос № 78.896
Здравствуйте.
Подскажите плиз, почему у меня окно диалога не центрируецца при запуске? Все флаги вроде установлены. Активизирую так:
call GetModuleHandleA,0
mov hInst,eax
call DialogBoxParamA, hInst, 101, 0, offset mDlgProc, 0
Окно вылетает по координатам указанным в фале ресурсов. Если там прописать 0,0, то будет с угла вылетать. Где сабака зарыта?
Приложение:
Отправлен: 19.03.2007, 10:21
Вопрос задал: Maximus777 (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 1)
Отвечает: Tek
Здравствуйте, Maximus777!
Какие флаги?
Вы используете DialogBoxParam - эта функция создает окно диалога по шаблону в файле ресурсов, конечно она берет из ресурсника и координаты окна.
Для центровки окна можно использовать либо MoveWindow либо SetWindowPos
нужно положение вычисляется по размерам окна и размером рабочей области экрана - получаем функцией SystemParametersInfo с флагом SPI_GETWORKAREA.
--------- WinApi - жутко неудобные костыли, MFC и VCL - немногим полезнее, но ничего лучше еще не создано (C)Почти Уинстон Черчилль :)
Ответ отправил: Tek (статус: Студент)
Ответ отправлен: 19.03.2007, 10:39 Оценка за ответ: 5 Комментарий оценки: Спасибо за наставление на путь истинный. А зачем тогда в файле ресурсов DS_CENTER указываецца?