Страница 1 из 2

ЗАСТАВИТЬ Appl..->MessageBox пок-ть в любом месте экрана?

Добавлено: 18 окт 2004, 17:02
rubaxa
Всем привет! :D
Большая просьба (или меня повесят через 4 дня :cry: ), как заставить
Application->MessageBox показывать сообщение не отцентрированное
по экрану, а задать его месторасположение (Left, Top)?
P.S. На мою голову дали указания переделать проект на двух мониторных системах, а там сообщения противно вырезаютсья и торчат
по краям обоих мониторов. (А проект огрооомный... :twisted: )
ВСЕМ ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО :lol:

Добавлено: 18 окт 2004, 20:03
Romeo
Похоже никак. MessageBox автоматически центрируется самой Windows по центру окна-парента. Выход такой: создаём модальный диалог CMyMessageBox и устанавливаем у него все аттрибуты, как у MessageBox диалога, добавляем ему методы SetText, SetTitle и SetIcon и имплементируем их. Всё, осталось только вызвать DoModal() :)

Добавлено: 18 окт 2004, 22:29
Andy
как заставить
Application->MessageBox показывать сообщение не отцентрированное
по экрану, а задать его месторасположение (Left, Top)?
Получить хендл MB и подвинуть его туда куда надо.

Добавлено: 19 окт 2004, 10:46
Eugie
Получить хендл MB и подвинуть его туда куда надо.
Вопрос только, как его получить :)

Лучше сделать свой, Romeo прав.

Добавлено: 19 окт 2004, 13:40
Andy
Вопрос только, как его получить
Да не проблема, можно установить хук. Можно хотя бы тут почитать - http://www.catch22.net/tuts/msgbox.asp

Добавлено: 19 окт 2004, 13:48
Absurd
А метод Application->MessageBox вообще виртуальный или нет? может его переопределить как-то можно?

Добавлено: 19 окт 2004, 16:24
Eugie
Да не проблема, можно установить хук.
Конечно, можно, только это называется 'левой ногой за правым ухом почесать' :) Плохое решение в данном случае.
А метод Application->MessageBox вообще виртуальный или нет? может его переопределить как-то можно?
Нет, обычный (речь об Application из BC++ Builder)

Добавлено: 19 окт 2004, 16:41
rubaxa
Всем Бооольшое СПАСИБО! :D
Попробую УСЁ !!! [/img]

Добавлено: 20 окт 2004, 14:34
rubaxa
Удалось 'левой ногой за правым ухом почесать', Конечно плохое решение в данном случае, но меньше проблем с приведением своей формы под разные типы МessageBox ов . Ребята я ваш должник... :D

Добавлено: 20 окт 2004, 14:42
Eugie
rubaxa, ну усё - теперь в век не расплатишься :)