Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.08.2011, 14:58   #21
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ид игнорится в функции SetTimer, в сообщение он приходит, и этот id нам возвращает функция SetTimer(то есть если нет окна то функция нам назначает id).
Спасибо, теперь понял Одной проблемой меньше, зато вагоном знаний больше. Пусть для кого-то и элементарных, но с чего-то же я должен начать, чтобы потом с умудреным жизню голосом (или текстом) говорить: "Учитесь ребятки, и когда-нибудь у вас будут уши, как у меня"
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.
MooNDeaR вне форума Ответить с цитированием
Старый 06.08.2011, 15:18   #22
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Счетчик там и так есть
я имел в виду что первый таймер считает 10-ти секундные интервалы, и как только будет 12-ый то выведен сообщение о том что кончилось время.
Код:
#include <windows.h> //кстати тут лежат обьявления функция типов и констант.
#include <iostream>

using namespace std;

VOID CALLBACK TimerMsgControl(       
                            HWND hwnd,
                            UINT message,  
                            UINT_PTR idTimer,
                            DWORD dwTime) 
{
    static int count=1;
    cout << "Прошло " << count*10 << "cекунд\n";
    count++;
    if(count==12)
    {
         KillTimer(0,idTimer);
         PostQuitMessage(0);//для разрыва цикла
    }
}

int main()  //начало программы
{
     SetTimer(hwnd,0,10000,TimerMsgControl); //первый таймер
     MSG m;
     while(GetMessage(&m,0,0,0))
     {
          DispatchMessage(&m); 
     }
     cout<<"Время вышло"<<endl;
     system("pause");
}
примерно так, гляньте

как вы заметили ид я не запоминаю, потому что у меня всего один таймер на процедуру(кстати совсем не обязательно делать как вы делали, можно две процедуры на два таймера)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 06.08.2011 в 15:20.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.08.2011, 15:48   #23
MooNDeaR
В стагнации
Участник клуба
 
Аватар для MooNDeaR
 
Регистрация: 29.07.2011
Сообщений: 1,303
По умолчанию

Код:
VOID CALLBACK TimerMsgControl(       
                            HWND hwnd,
                            UINT message,  
                            UINT_PTR idTimer,
                            DWORD dwTime)
вот тут вы третим параметром передаете UINT_PTR idTimer, тобишь указатель. А вот тут(MSDN) передают просто UINT, тобишь номер таймера?. Чуть-чуть непонятно получается на место этого параметра я получаю переменную по адресу?

Цитата:
я имел в виду что первый таймер считает 10-ти секундные интервалы, и как только будет 12-ый то выведен сообщение о том что кончилось время.
Эт я понял еще с первого раза И даже написал тоже самое уже Но эт подтверждение моему мозгу, что я пока что вродь правильно делаю

Блин, я себя иногда таким тупорылым чувствую, ничего не способен сам додумать.
E-mail: pashaworking@gmail.com | ICQ: 479914426 | Skype: moondearr
Понять, чего от тебя требует заказчик – это уже половина всей работы, а иногда и полностью выполненное задание.

Последний раз редактировалось MooNDeaR; 06.08.2011 в 15:52.
MooNDeaR вне форума Ответить с цитированием
Старый 06.08.2011, 16:04   #24
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

UINT_PTR это не указатель.(хоть и PTR)
я просто когда смотрел описание TimerProc там был UINT_PTR, потому его и взял(да и SetTimer возвращает UINT_PTR, вообще эти типы помоему идентичны)
(странно, у них видимо разность в доке, надо тыркнуть им на это)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача из раздела Комбинаторные алгоритмы и алгоритмы на гра-фах в Паскале Klik_1602 Помощь студентам 1 04.01.2011 01:18
[Вопрос] Реализация многопоточности запуска/остановки конкретных программ из списка Человек_Борща Общие вопросы Delphi 8 06.10.2010 08:59
Численные методы. Метод Стрельбы (Делфи) s1z0n Помощь студентам 1 23.04.2010 15:37
краевая задача диф.уравнения методом стрельбы Laplas Помощь студентам 2 26.12.2009 23:56
Задача на оценку эффективности стрельбы Борзов Помощь студентам 3 23.05.2007 06:54