![]() |
|
Модераторы: Akina |
![]()
|
|
| Juffin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.5.2005 Репутация: нет Всего: нет |
Доброе время суток всем!
Есть программа, Main форма которой содержит только таймер и не отображается (hidden). По таймеру программа проверяет всякие условия и по результатам проверки выводит (или не выводит) сообщение пользователю. Это сообщение очень желательно вывести модально для системы, или хотя бы поверх всех открытых окон. Я попробовал сделать форму для вывода этого сообщения, но она появляется не "наверху", а под другими окошками. Я пробовал для вывода сообщения использовать MsgBox (эта штука модальна, как нужно), но хитрые русские юзеры ловко обманывают программу - они не закрывают MsgBox, а просто перемещают его за пределы экрана и все - программа дальше не работает, а ждет ответа... В связи с этим вопрос к гуру: Как же сделать, что бы форма открывалась "поверх" всех окон или как продолжить работу программы с незакрытым MsgBox? Или как программно закрыть этот MsgBox? Всем заранее спасибо! |
|||
|
||||
| Mephisto |
|
||||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
|
||||
|
|||||
| korob2001 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2871 Регистрация: 29.12.2002 Репутация: нет Всего: 61 |
Добавь в проект ещё одну форму, а на первую добавь кнопку. На событие кнопки кинь этот код.
Думаю пояснять ничего не нужно. Удачи. -------------------- "Время проходит", - привыкли говорить вы по неверному пониманию. "Время стоит - проходите вы". |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
А на зачем тебе Main-форма?
Сделай старт не формы, а Sub Main(). Будет проще контролировать действия юзера. А еще по тому же таймеру можно сотворить If Form.Visible=True Then Call RestorePositionAndModality() -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Juffin, а зачем показывать MsgBox, если ты его программно собираешься закрыть?
Можешь с этого момента подробней? |
|||
|
||||
| Juffin |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.5.2005 Репутация: нет Всего: нет |
2Mephisto: На самом деле я использую MsgBox только потому, что он модален и выскакивает "поверх всех". Добавлено @ 13:23
2Akina: А как без формы работать с таймером? Мне нужно отслеживать произвольные промежутки времени (задается настройками). |
||||
|
|||||
| Juffin |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.5.2005 Репутация: нет Всего: нет |
2Mephisto: А как в проекте VB объявить SetWindowPos? |
||||
|
|||||
| __Sergey__ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.1.2005 Репутация: 4 Всего: 4 |
Чтобы без формы использовать таймер надо юзать АПИ:
SetTimer and KillTimer |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Есть специальная утилита для декларации функций АПИ. Лежит в пуске, возле самого ВБ в подкоталоге. Зайти в пуск, там найдешь. Нажмешь "загрузить файл", в разделе Declares наберешь SetWindowPos и запостишь это в раздел General. Короче, если никто не поможет, завтра напишу пример!
|
|||
|
||||
| __Sergey__ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.1.2005 Репутация: 4 Всего: 4 |
|
|||
|
||||
| Juffin |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 25.5.2005 Репутация: нет Всего: нет |
Всем огромное спасибо!!! Именно SetWindowPos сделала все, что мне нужно! А вызывал я ее вот так:
Именно так окно не меняет ни размера, ни положения и вытаскивается "на самый верх". Еще раз всем спасибо. |
|||
|
||||
| efedron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 16.3.2005 Репутация: 4 Всего: 4 |
Mephisto
это все правильно, а как во время выполнения сделать окно неактивным (в соответствии с z-порядком)? --------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
efedron
http://forum.vingrad.ru/index.php?act=modu...icle_num=002864 Значения флагов - очевидны (для знающих аглицкий) или подробнее в MSDN. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| efedron |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 135 Регистрация: 16.3.2005 Репутация: 4 Всего: 4 |
Akina
в том-то все и дело, что если сказать swp_noactive, а окно до этого уже было активным, то фокус оно не отдает --------------------
Прежде чем совершить акт разрезания определенной материи целесообразно удостовериться в правильности всех произведенных измерений. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Ну ты дал... а с какого перепугу оно должно отдать фокус? и куда? это надо делать явно, руками... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |