- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 C++ 的新手,似乎被卡住了。我里面基本上有一个窗口和一个按钮(也是用 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 );
}
关于C++ 使用 MoveWindow() 动画按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33943747/
敲代码时,突然发现有一个背景图片无法显示,百思不得其解,最终发现是MoveWindow() SetWindowPos()这两个函数的使用不当造成的。 这里把这两个函数的前世今生给分析一下。
我想从我的应用程序调整大小和/或移动一些外部窗口,主要是屏幕键盘窗口。这是代码: [DllImport("user32.dll", SetLastError = true)] int
我正在使用 win32gui将记事本窗口移动到屏幕的原点 (0, 0),宽度和高度等于 500。结果是窗口没有移动到真正的左边框,而是 ~10 px。向右。宽度和高度也不等于 500 像素。 (~62
我是 C++ 的新手,似乎被卡住了。我里面基本上有一个窗口和一个按钮(也是用 CreateWindow() 创建的)。我想让按钮在 X 轴上移动,我尝试使用 MoveWindow() 但我似乎无法制作
我正在使用 MoveWindow() 调整窗口大小,但我不拥有该窗口。我只是从不同的进程中窃取了它,现在我正在摆弄它的 hWindow。 然而,我从中窃取它的进程正在运行一个消息循环,处理其中一些消息
有什么方法可以在窗口上强制执行最小尺寸(宽度和高度)? 我见过不允许将窗口大小调整到某个点以下的应用程序,并且不会出现闪烁或其他任何情况。此外,如果分辨率低于这些最小值,它们将不允许最大化,而是将自己
我正在使用 SetWindowPos 和 MoveWindow 来调整窗口大小和居中。它工作正常,但在 Windows Media Player 或控制面板等多个窗口上,当您关闭窗口并再次打开时,不会
我非常渴望解决这个非常烦人的问题:(我试图在父窗口上显示一个子窗口。有时需要调整窗口大小。但出于某种原因,当我使用 MoveWindow 函数时,它会在父窗口的顶部留下空白区域。我想在这里展示一张图片
我正在编写一个 python 脚本来使用 ffplay 运行电影,然后将 ffplay 窗口移动到屏幕上的特定位置。 我基于此的脚本位于此处 - http://code.activestate.com
我目前遇到一个非常奇怪的问题 CComboBox在 CFormView 中使用. 将字符串添加到组合框(使用 WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCRO
以下摘自 MoveWindow() 的备注部分文档: If the bRepaint parameter is TRUE, the system sends the WM_PAINT message
我正在使用 OpenCV 2.3 的 C++ 版本,并且正在努力完成一项基本任务。我想做的是创建一个窗口并将其移动到屏幕上的特定位置,例如: cv::namedWindow("My Window",
我根本不是 Windows 开发人员(我做 AS3 的东西),但我在 Visual C# 2010 中编写了这个 C# 控制台应用程序以测试某些内容。该应用程序应该打开一个窗口并调整其大小和位置。 我
我正在为 Visual Studio 2003 使用 MFC。我有一个 ID 为 IDC_COMMENT_EDIT 的编辑控件。在下面的代码中,在我第一次调用 GetClientRect 之后,我不希
简介及相关信息: 我正在尝试使用可编辑项和子项实现 ListView 控件。项目和子项目应该具有编辑控件、复选框或组合框,而不是常规的 ListView 外观。 我正在使用原始 WinAPI 和 C+
我编写了一个简单的实用程序,让您可以通过键入新的所需宽度、高度和窗口的左上角来移动屏幕上的任何窗口和/或调整其大小。它在 100% 缩放时效果很好,但当我更改缩放时它会失败。 例如,在我的 4k 显示
我有一个 listview 控件 (lvc),它位于 DialogBox(dbx) 中,而且 dbx 也有一个垂直滚动条。 每当滚动条滚动时,调用EnumChildWindows 来枚举dbx 的所有
这个问题在这里已经有了答案: Effect of MoveWindow in EnumChildWindows over listview inside the Dialog Box: Why Li
我是一名优秀的程序员,十分优秀!