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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2012, 13:56   #1
stinger2012
 
Регистрация: 03.05.2012
Сообщений: 5
Вопрос C++: анимация

Код:
LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
     HDC         hdc;
     PAINTSTRUCT ps;
     int i = 0;

     switch (iMsg)
          {
          case WM_TIMER :
               i=i++;
               InvalidateRect (hwnd, NULL, FALSE);          
               return 0;
          case WM_PAINT :
               hdc = BeginPaint (hwnd, &ps);
               Rectangle(hdc,i,i,100,100);
               return 0;
          case WM_DESTROY :
               KillTimer (hwnd, ID_TIMER);
               PostQuitMessage (0);
               return 0;
          }
     return DefWindowProc (hwnd, iMsg, wParam, lParam);
     }
В 10 строке изменяется значение счетчика по таймеру, который потом используется в 19 строке.По идее должен быть двигающийся прямоугольник, но он статичен.

Пожалуйста подскажите почему не работает?
stinger2012 вне форума Ответить с цитированием
Старый 18.05.2012, 16:24   #2
StIX-S
Пользователь
 
Регистрация: 24.06.2011
Сообщений: 69
По умолчанию

Может быть потому, что i нужно объявить как статик, т.е.
Код:
static int i = 0;
StIX-S вне форума Ответить с цитированием
Старый 18.05.2012, 17:07   #3
Rock-n-Rolla
Форумчанин
 
Регистрация: 11.01.2012
Сообщений: 177
По умолчанию

Цитата:
Сообщение от StIX-S Посмотреть сообщение
Может быть потому, что i нужно объявить как статик, т.е.
Код:
static int i = 0;
было бы правильнее сказать "перемунную i надо сделать глобальной". ну конечно, статическая переменная это тоже самое, но суть в том новичку надо понять суть проблемы.


stinger2012, в твоём случае при выполнении case WM_PAINT : переменная i всегда равна нулю
progromore.i2p - первый русскоязычный портал программистов в скрытосети
Rock-n-Rolla вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анимация A-IX-2 Общие вопросы Delphi 9 10.03.2011 16:30
Анимация в СИ !!! Ислам Помощь студентам 1 03.03.2011 08:42
Анимация ZvEr_HaCkEr Свободное общение 8 13.11.2010 11:40
Анимация ZET78 Общие вопросы C/C++ 2 26.05.2010 21:00
Анимация в С++ Streb Общие вопросы C/C++ 28 07.06.2009 19:07