Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Анимация


Автор: umnick 18.5.2012, 12:17
Код


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 строке.По идее должен быть двигающийся прямоугольник, но он статичен.

Пожалуйста подскажите почему не работает?

Автор: GremlinProg 18.5.2012, 12:22
Цитата(umnick @  18.5.2012,  14:17 Найти цитируемый пост)
 почему не работает?

потому что i - локальная переменная

Автор: umnick 18.5.2012, 13:13
Ну так она ж находится внутри функции.

Автор: GremlinProg 18.5.2012, 13:17
начни с этого:
Цитата(umnick @  18.5.2012,  14:17 Найти цитируемый пост)
static int i = 0;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)