![]() |
|
![]() ![]() ![]() |
|
АлексейМ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Народ, у мя такой вот вроде бы совсем несложный вопросик. Нужно через заданное в EditBox время закрывать диалоговое окно проги. Предполагаю, что можно это сделать с помощью цикла и функции SetTimer. Например, в поле вводим время в минутах. Тогда параметрами таймера могут быть SetTimer(1, 60000, NULL). Переменной цикла присваиваем значение из поля ввода. Одна минута - цикл повторяется один раз, две минуты - два и т.д. Только вот как сделать, чтобы окно закрывалось при окончании цикла?
Вот, у меня был вариант, но он по понятным причинам не работает. А другой чёт не допирает, как сделать...
Заранее благодарю. ![]() |
|||
|
||||
Aleksandor |
|
|||
![]() Практик ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 22.11.2005 Где: россия, зеленогра д Репутация: нет Всего: 12 |
Ну например можно по окончании цикла послать окну сообщение, а в обработчике сообщения убить таймер и закрыть окно. Сообщение типа SendMessage(hDlg,WM_APP+1,0,0);
Обработчик case WM_APP+1: KillTimer(hDlg,1); EndDialog(hDlg,TRUE); return TRUE; -------------------- Call out Gouranga be happy!!! Gouranga Gouranga Gouranga .... That which brings the highest happiness!! |
|||
|
||||
АлексейМ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Aleksandor, будь добр, укажи, куды в моём коде всё это дело вставлять. Спасиба!
|
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 5 Всего: 124 |
А зачем цикл-то ?
Ставишь таймер сразу на сколько надо... Ведь твой цикл — не задержка! Он мгновенно выполняется! |
|||
|
||||
АлексейМ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
SergeCpp, вишь, в чём дело - мне надо, чтобы в моей проге ПОЛЬЗОВАТЕЛЬ мог задавать время, через которое окно будет закрываться, открываться, выдавать какое-нить сообщение или производить любую другую операцию. Например, хочешь задать программке, чтобы через десять минут она включила те какой-нить музончик, а потом вдруг передумал, и захотел, чтобы она включила музон через полчаса. Если каким-то макаром реализовать то, что я хочу, то это сделать будет очень просто. А если предложенным тобой способом, то, чтобы изменить время, надо будет изменять исходник и перекомпилировать... Согласись, эт не очень удобно.
Вот в этом-то вся проблема... Может, сделать какую-нить функцию, которая будет до определённого момента считать поступившие сигналы таймера? Опять же, не представляю, как это можно реализовать... У кого есть идеи? давайте их сюды! ![]() |
|||
|
||||
SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 5 Всего: 124 |
Не понял...
tmr = SetTimer(1, 60000 * cycletime, NULL); В чём тут сложности ? ================================== Или уж делай static в таймерном обработчике И её увеличивай (уменьшай) |
|||
|
||||
АлексейМ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 29.8.2005 Репутация: нет Всего: нет |
Спасибо большое!
Просто я ещё новичок, и не знал, что в таймере умножение можно ставить. ![]() Ща попробую! |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |