C++使用MoveWindow()为按钮设置动画
C++ Animating a button with MoveWindow()
我是C++的新手,似乎被卡住了。我基本上有一个Window和一个Button(也是用CreateWindow()创建的)。我想让按钮在X轴上移动,我试着用MoveWindow()来做,但我似乎做不到动画效果。我试着把它写在for循环中,但我没有找到用什么来延迟动画。如果有任何帮助,我将不胜感激。
for (int i = 0; i < 50; i++) {
MoveWindow(g_MovingDot, i, ButtonTop, ButtonWidth, ButtonHeight, true);
//Delay it somehow
}
这是正确的做法吗?我只想按钮慢慢向右移动。
使用SetTimer
函数在超过超时值时得到通知。
使用签名实现功能
VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT_PTR, DWORD);
并向SetTimer
传递函数指针以注册回调过程。
使用全局控制变量,该变量控制窗口的动画。在下面的代码片段中,控制变量被命名为i_g
当计时器超时时,将调用回调过程。增加控制变量,稍微移动对话框元素并重新启动计时器,直到到达最终位置
动画时间由动画步数和单个步的时间间隔控制。
int g_i=0;
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 );
}
相关文章:
- 如何在 VC6 中的对话框中将图标设置为按钮
- 无法增加 QToolButton 的大小(按钮样式设置为 Qt::ToolButtonTextBesideIcon)
- 设置按钮位置
- 如何在QPush按钮悬停时设置突出显示
- 如何设置按钮的背景颜色,包括复选框按钮
- 设置 QWizard 页面的按钮宽度
- 如何在Linux上的C 中的GTKMM3中的特定按钮设置CSS类
- 如何将只读动态设置为按钮和文本框
- 如何将按钮的属性设置为从Qt中的小部件可见
- 如何使用 qss 在选中时将单选按钮设置为粗体
- 在MFC中以编程方式设置单选按钮状态
- c++ qt 主窗口设置图像后的对话框"确定"按钮
- 在关闭按钮上设置未保存的文件标记
- 如何将插座设置为与动作相连的按钮
- 单击按钮后对QML矩形的颜色设置动画
- 在q按钮上设置图标
- 单击按钮时,将当前位置/订单保存在QTabWidget中 - 用户设置
- C++使用MoveWindow()为按钮设置动画
- 如何使用QSS为禁用按钮设置不同的背景颜色
- 如何使用gtk中的代码将单选按钮设置为选中