Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Через 3 дня :

День славянской письменности и культуры


Как сделать окно модальным?


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
denis
Гость







СообщениеСр, 04-Июн-2003 3:37    Заголовок сообщения: Как сделать окно модальным?
Цитата

Подскажите добрые люди. У меня есть дескриптор некоего окна, могу ли я сделать его модальным, сообщение может какое ему отправить? Вопрос
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеСр, 04-Июн-2003 9:43 
Цитата

В смысле модальным? Фокус ввода передать, что ли? Тогда SetForegroundWindow()
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеСр, 04-Июн-2003 16:10 
Цитата

to DrPass
Наверно аналогично TForm.ShowModal в Делфи - передать фокус и запретить перемещать фокус на любое другое окно этого приложения.
to denis
А это точно не Делфийское окно?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Dave
Модератор


Возраст: 36
Знак зодиака: Лев
Зарегистрирован: 08.08.2002
Сообщения: 1208
Откуда: Yaroslavl
СообщениеСр, 04-Июн-2003 16:19 
Цитата

Хе ! :)
А ты собираешься его делать модальным относительно чего ?

_________________
Не убегай от снайпера - умрешь уставшим !
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеСр, 04-Июн-2003 17:44 
Цитата

Нет, ну если окно в другой программе - то как его модальным сделать? Лично я сейчас не знаю
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
denis
Гость







СообщениеЧт, 05-Июн-2003 11:16 
Цитата

to denis
Ну как обычно, есть программа которая позволяет во встроенном языке вызывать свои DLL, передавая в них строку и дискриптор окна (их там много) и хочется сделать одно из них модальным
В начало
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеЧт, 05-Июн-2003 12:45 
Цитата

Что-то мутная тема получается...
Как будто боты на форум пролезли :)

_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеВт, 17-Июн-2003 11:45 
Цитата

ну так посмотри вин апи, мож есть такая функция...
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
DrPass
Знающий :)
/Почетный Модератор/


Возраст: 31
Знак зодиака: Лев
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
СообщениеСр, 18-Июн-2003 0:41 
Цитата

Да смотрел WinAPI. Нет там такой функции, разве что плохо смотрел.
_________________
Да пребудет с вами Сила!
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Gelios
Oracle-вый маньяк, Админ


Возраст: 37
Знак зодиака: Водолей
Зарегистрирован: 10.03.2005
Сообщения: 6141
Откуда: Яблочный рай
СообщениеЧт, 19-Июн-2003 8:00 
Цитата

ну значит нельзя.
_________________
нельзя давать всем всего, ибо всех много, а всего мало
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеСр, 24-Авг-2005 7:55 
Цитата

хех, кажись я немного опоздал на обсуждение... :)
а ведь и мне приходилось решать такую задачку.
дело было так....
однажды на работе поручили мне написать так называемую "Электронную заявку".
суть такая.
программа должна перехватить задание на печать на любой из имеющихся сетевых принтеров и придержать его в очереди печати до тех пор, пока не будет оформлена и утверждена заявка на печать.
при этом окно оформления заявки должно выскочить в программе, печатающей документ (будь то Acad, Office и какая-нибудь самодельная прога), сразу после помещения всего задания в очередь.
одним из условий было то, что окно заявки должно быть модальным.
и вот как это сделал я...
во все визуальные процессы внедрялась некая библиотека (с помощью SetWindowHookEx), которая при аттаче ставила ApiHook на некоторые функции печати (не буду вдаваться в детали).
ну а дальше дело техники.
сразу по окончании помещения задания в очередь печати, в процессе создавался новый поток, выводящий на экран окно оформления заявки.
модальность этого окна достигалась следующим образом.
имея хэндл текущего процесса, я находил хэндлы всех принадлежащих к нему потоков, далее получал список разрешенных (enabled) родительских окон каждого из потоков.
и все!
при отображении окна заявки включалась модальность - запрещение (disable) всех окон в списке, при уничтожении окна модальность отключалась - разрешение всех окон в списке.



1.gif
 Описание:
прога в действии :)

Скачать
 Имя файла:  1.gif
 Размер:  46.32 KB
 Загружен:  395 раз(а)

В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж NikotiN
Розовый мамонт


Возраст: 26
Знак зодиака: Овен
Зарегистрирован: 18.03.2005
Сообщения: 2137

СообщениеСр, 24-Авг-2005 18:20 
Цитата

имхо всё решается через стиль окна или класса.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеЧт, 25-Авг-2005 4:31 
Цитата

ты ошибаешься :)
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100