Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 15

Временная задержка (без Sleep)

13.06.2012, 23:57. Показов 5689. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. У меня проблема - не знаю как создать временную задержку.
C++
1
2
3
4
5
6
7
8
9
10
11
12
while(p<290)
            {
                        SelectObject(hdc, hb2); 
                        SelectObject(hdc, hpen2); 
                        Rectangle(hdc,l,90,p,100);
                        l++;
                        p++;
                        SelectObject(hdc, hb1); 
                        SelectObject(hdc, hpen1); 
                        Rectangle(hdc,l,90,p,100);
                        Sleep(10);//задержка
                        }
В данном участке кода анимация - движущийся по горизонтали квадратик. Я знаю об Sleep();, но она мне не подходит - программа не отвечает пока не выполниться цикл до конца (например нельзя закрыть программу через крестик).
Цель: задержка которая даёт возможность принимать сообщения.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.06.2012, 23:57
Ответы с готовыми решениями:

Задержка функции вывода без использования Thread.sleep
Доброе время суток всем. Прошу о помощи Вас ) Возможно ли вывести сообщение с задержкой без использования Thread.sleep? Data now...

Временная задержка
Вопрос такой. Есть 2 объекта TTrackBar. При измении одного ползунка, второй должен переходить в тоже значение с небольшой задержкой,...

Временная задержка в цикле
Здарова,нужно сделать задержку в цикле for для отрисовки трапеции,которая двигается вдоль линии. System.Threading.Thread.Sleep(50); не...

7
Brainsbreaker
 Аватар для Digit@ll
899 / 374 / 54
Регистрация: 01.02.2011
Сообщений: 1,608
14.06.2012, 00:30
SetTimer должон помочь, хотя с while... Непонятно.
0
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 15
14.06.2012, 00:40  [ТС]
Пробовал, не помогло... Ну а может есть несколько другой способ реализации анимации?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 11
14.06.2012, 00:59
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цитата Сообщение от Сетунь Посмотреть сообщение
Цель: задержка которая даёт возможность принимать сообщения.
Как раз таймер и дает такую возможность:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
        case WM_CREATE:
            SetTimer(hwnd, MY_TIMER, 10, NULL);
            break;
 
        case WM_TIMER:
            switch(wParam)
            {
                case MY_TIMER:
                    if(p < 290)
                    {
                        HDC hdc = GetDC(hwnd);
                        SelectObject(hdc, hb2);
                        SelectObject(hdc, hpen2);
                        Rectangle(hdc,l,90,p,100);
                        l++;
                        p++;
                        SelectObject(hdc, hb1);
                        SelectObject(hdc, hpen1);
                        Rectangle(hdc,l,90,p,100);
                        ReleaseDC(hwnd, hdc);
                    } // можно по else вообще отключить таймер
                    break;
            }
            break;
, прекрасно закрывается окно во время перемещения объекта, не знаю уж как ты пробовал, что
Цитата Сообщение от Сетунь Посмотреть сообщение
не помогло...
1
0 / 0 / 0
Регистрация: 30.05.2011
Сообщений: 15
14.06.2012, 01:02  [ТС]
Блеск, Спасибо!
0
 Аватар для wiseman92
0 / 0 / 2
Регистрация: 09.07.2012
Сообщений: 34
12.07.2012, 09:41
UI, по-моему, можно просто через функцию
C++
1
VOID WINAPI Sleep( __in DWORD dwMilliseconds );
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33194 / 21480 / 8231
Регистрация: 22.10.2011
Сообщений: 36,848
Записей в блоге: 11
12.07.2012, 09:56
wiseman92, Sleep автору не подходит, он же явно написал:
Цитата Сообщение от Сетунь Посмотреть сообщение
Я знаю об Sleep();, но она мне не подходит - программа не отвечает пока не выполниться цикл до конца (например нельзя закрыть программу через крестик).
Sleep просто тормозит выполнение текущего потока, при этом никакие другие события не обрабатываются, т.е., форма "замораживается" на время цикла. А с таймером - все работает без "заморозки".
1
 Аватар для wiseman92
0 / 0 / 2
Регистрация: 09.07.2012
Сообщений: 34
12.07.2012, 10:26
UI, мда... в следующий раз буду внимательней читать вопрос=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.07.2012, 10:26
Помогаю со студенческими работами здесь

Временная задержка в циклах
Для чего в бесконечных циклах делают временную задержку? Например: While(1){ porta = portb; _dalay_ms(10); } ...

Точная временная задержка
Появилась необходимость задать в программе точную временную задержку 1 мс., которая была бы одинакова на любом компьютере, не зависимо от...

Короткая временная задержка (микросекунды)
Здравствуйте, люди добрые! Подскажите пожалуйста как реализовать временную задержку на 50 микросекунд. Буду очень признателен....

Задержка, sleep
Доброго времени суток, такая тема, нужно что бы кнопка открывалась и если ряд условий не верен то закрывалась if(cell==cell) { ...

Задержка, sleep
Ребят, нужно реализовать задержку по принципу: void Round2::on_bt0_clicked() { ui-&gt;bt0-&gt;setText(&quot;123&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru