Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[помогите] разобраться с косяком в модалных формах

9.8K
14 апреля 2006 года
AlexSob
24 / / 14.02.2006
Есть главная форма приложения.
Динамически создается еще одна форма
 
Код:
Application->CreateForm(__classid(TForm01), &curForm01);
SetWindowPos(curForm01->Handle, HWND_TOPMOST, 200, 200, 0, 0, SWP_NOSIZE);
curForm01->ShowModal();

Далее пока еще форма curForm01 не закрыта динамически создается еще одна форма и так же открывается модально.
 
Код:
Application->CreateForm(__classid(TForm02), &curForm02);
SetWindowPos(curForm01->Handle, HWND_TOPMOST, 300, 300, 0, 0, SWP_NOSIZE);
curForm02->ShowModal();

Далее из формы curForm02 выдаю
MessageDlg("qwe", mtInformation, TMsgDlgButtons()<<mbOK, 0);

Косяк получился такой: форма curForm02 открывается поверх curForm01 (как и нужно), а вот форма с сообщением "qwe" открывается модально НО для формы curForm01. Т.е. порядок форм на экране становится
curForm01 MessageDlg("qwe", ..) curForm02
а хочется
curForm01 curForm02 MessageDlg("qwe", ..)
подскажите в чем ошибка? что не так я сделал?
1
14 апреля 2006 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by AlexSob
Есть главная форма приложения.
Динамически создается еще одна форма
 
Код:
Application->CreateForm(__classid(TForm01), &curForm01);
SetWindowPos(curForm01->Handle, HWND_TOPMOST, 200, 200, 0, 0, SWP_NOSIZE);
curForm01->ShowModal();

Далее пока еще форма curForm01 не закрыта динамически создается еще одна форма и так же открывается модально.
 
Код:
Application->CreateForm(__classid(TForm02), &curForm02);
SetWindowPos(curForm01->Handle, HWND_TOPMOST, 300, 300, 0, 0, SWP_NOSIZE);
curForm02->ShowModal();

Далее из формы curForm02 выдаю
MessageDlg("qwe", mtInformation, TMsgDlgButtons()<<mbOK, 0);

Косяк получился такой: форма curForm02 открывается поверх curForm01 (как и нужно), а вот форма с сообщением "qwe" открывается модально НО для формы curForm01. Т.е. порядок форм на экране становится
curForm01 MessageDlg("qwe", ..) curForm02
а хочется
curForm01 curForm02 MessageDlg("qwe", ..)
подскажите в чем ошибка? что не так я сделал?


Возможно стоит использовать:

 
Код:
Application->MessageBoxA(...);

тогда твое сообщение будет поверх второй формы.
585
14 апреля 2006 года
honeybeer
297 / / 06.09.2004
А для полного контроля перекрываемости
 
Код:
MessageBox(curForm01->Handle, ...);
MessageBox(curForm02->Handle, ...);
MessageBox(Form1->Handle, ...);
9.8K
15 апреля 2006 года
AlexSob
24 / / 14.02.2006
спасибо!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог