Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Я про Время хотел поинтересоваться, ... 
:(
    Опции темы
[ss]3L33T@
Дата 26.10.2003, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



Я не так уж давно кодю на си и хотел бы знать:
Как мне после 20 сек. от запуска программы выдать надпись "Hello World".
Вообщем хочу узнать, как работать с таймером.
Если не в лом напишите пример plz, только не сложный....
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
Kefir
Дата 26.10.2003, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



Код
#include <windows.h>
#include <fstream.h>
int main()
{
 Sleep(20 * 1000);
 cout<<"Hello, World!\n";
}

Sleep Function
PM MAIL WWW Skype   Вверх
[ss]3L33T@
Дата 26.10.2003, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



Я не про задержку, а про таймер.
Т.е. например - идёт бесконечный цикл, а через 20 сек. он прерывается...

Это сообщение отредактировал(а) [ss]3L33T@ - 26.10.2003, 09:49
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 26.10.2003, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 25
Всего: 232



Бесконечный цикл напрягает процессор на 100%.
Используй WaitForSingleObject с заданной задержкой, или создавай waitable timer в окне и лови WM_TIMER в оконной функции.


--------------------
user posted image
PM MAIL WWW   Вверх
[ss]3L33T@
Дата 26.10.2003, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



2 mr.DUDA: И как это сделатьconfused.gif?приведи листинг проги. А на счёт цикла - это я для примера.
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
RAN
Дата 26.10.2003, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Поищи на форуме по строке "WM_TIMER", например. Такой вопрос поднимается регулярно.
PM MAIL ICQ   Вверх
[ss]3L33T@
Дата 26.10.2003, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



2 RAN:
Ты там писал:
Да, проще таймер.

Инициализируешь таймер
UINT uTimerID = SetTimer(hwnd, 0, 0, NULL);
SetTimer(hwnd, uTimerID, 1000, NULL);

Теперь окно каждую секунду будет получать сообщение WM_TIMER
В нём меняешь картинку

Когда надо заклнчить вызываешь KillTimer(hwnd, uTimerID)


Приведи плиз примерчик. И если можно перечисли все виды сообщений от WM_TIMER.
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
RAN
Дата 26.10.2003, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



А чего не понятно?

В WM_CREATE, например, главного окна вызываешь SetTimer. Теперь через указанное кол-во миллисекунд получишь WM_TIMER. Выводишь в WM_TIMER "Hello world" и вызываешь KillTimer, чтоб сообщение больше не получать. Всё.
PM MAIL ICQ   Вверх
[ss]3L33T@
Дата 26.10.2003, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz-Zz.
Я тупой.
Приведи пример без привязки к опред. окну(hwnd). и поподробней, я совсем ни черта не понимаю.

Это сообщение отредактировал(а) [ss]3L33T@ - 26.10.2003, 12:59
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
RAN
Дата 26.10.2003, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



Цитата
Приыеди пример без привязки к опред. окну(hwnd). и поподробней


Это возможно, но сложнее. Не хочу тебя путать. Ты на чём пишешь?
PM MAIL ICQ   Вверх
[ss]3L33T@
Дата 26.10.2003, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



Ты всмысле разкладки клавы? smile.gif.
VC++ 6.0, .NET.
Если я тебя правильно понял.
--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
RAN
Дата 26.10.2003, 12:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Экс. модератор
Сообщений: 709
Регистрация: 14.3.2003
Где: Щёлково Моск.обл.

Репутация: 5
Всего: 6



MFC? API? .NET Framework?
PM MAIL ICQ   Вверх
[ss]3L33T@
Дата 26.10.2003, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 14.10.2003
Где: Казармы

Репутация: -1
Всего: 1



MFC, для OpenGL.
Я сейчас только на нём. А если что по мелочи, то в стандартом Console Application'е.

--------------------
Понастоящему добрый человек всегда простит и забудет вам ваше зло, но он никогда не простит и не забудет вашего добра[ss]3L33T@
PM MAIL WWW ICQ   Вверх
GanZaleZ
Дата 26.10.2003, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 41
Регистрация: 15.7.2003

Репутация: нет
Всего: нет



Ну впринципе же можна получить hWnd консольного окна ? ну тогда почему бы его и не передать ?
Нужно попробофать smile.gif
А в остальном значить фроде дело обстоит так :

Код


VOID CALLBACK TimerProc( HWND hwnd,  UINT uMsg,  UINT_PTR idEvent,  DWORD dwTime)
{
  // делаеш что нужно , эта колбек функция вызывается системой по проходу заданого времени
  // Но тут нуно запомнить что Указатель допустим на this сюда не передается ! ну это так к слову
  // И если хочеш чтото зделать с какойто переменной то указатель на нее нужно передать в Эту функцию и получить в ней в качестве ПОМОЕМУ 3 аргумента !!!!
}



//  Когда те нуно задать время вызываеш эту функцию и ........

SetTimer( HWND hWnd, UINT_PTR nIDEvent, UINT uElapse,  TIMERPROC lpTimerFunc );

// Попробуй передать hWnd  консольного окна , ведь оно окно , значить тоже имеет hWnd !
// nIDEvent Это как раз КОНТЕЙНЕР в котором можно передать в ту КАЛБЭК функцию разную Информацию например Указатель на какуюто переменную которую нужно изменить по прохождению какогото времени ! :)
// uElapse - Время ожидания !
// lpTimerFunc - Имя Функции которая Вызофется по прохождению времени ТОБИШ TimerProc




Вроде все Ферно но мугут быть ошибки , вчасности с Аргументом которым передается информация ,
Дафно я этим не занимался smile.gif
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0568 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.