2015-11-26 6 views
1

Я новичок в C++ и, кажется, застрял. У меня в основном есть окно и кнопка внутри него (также созданная с помощью CreateWindow()). Я хочу, чтобы кнопка двигалась по оси X, я пробовал делать с MoveWindow(), но я не могу сделать эффект анимации. Я попытался написать его в цикле for, но я не нашел, что использовать для задержки анимации. Буду признателен за любую помощь.C++ Анимация кнопки с MoveWindow()

for (int i = 0; i < 50; i++) { 
    MoveWindow(g_MovingDot, i, ButtonTop, ButtonWidth, ButtonHeight, true); 
    //Delay it somehow 
} 

Будет ли это правильным путем? Я просто хочу, чтобы кнопка медленно двигалась вправо.

ответ

1
int g_i; 

void CALLBACK BtnTimer(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) 
{ 
    KillTimer(hwnd, idEvent); 
    if (g_i < 50) 
    { 
     MoveWindow(g_MovingDot, i, ButtonTop, ButtonWidth, ButtonHeight, true); 
     g_i ++; 
     SetTimer(hwnd, idEvent, 100 /* time milliseconds */, &BtnTimer); 
    } 
} 


void AnimateButton(HWND hDialogWnd //* HWND from Dialog */) 
{ 
    g_i = 0; 
    SetTimer(hDialogWnd, 0 /* idEvent */, 100 /* time milliseconds */, &BtnTimer);  
} 
+0

Это работало благодаря большому количеству !!! – Revangelis

Смежные вопросы