Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Win API


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / WinAPI

Выпуск № 404
от 24.03.2007, 10:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 406, Экспертов: 38
В номере:Вопросов: 1, Ответов: 1


Вопрос № 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 указываецца?


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное