假设你有一个WS_OVERLAPPEDWINDOW窗口,并且你第一次显示它:
::ShowWindow(hwnd, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)
该窗口将显示预期的淡入动画(在 Windows 10.0.18363 上进行测试)。
如果您随后隐藏窗口:
::ShowWindow(hwnd, SW_HIDE);
Run Code Online (Sandbox Code Playgroud)
并尝试再次重新显示,通过SW_SHOW上面的调用,它会立即显示,无需淡入过渡。
问题是:第二次显示窗口时如何使用::ShowWindow()淡入过渡?
请注意,第一次和后续SW_HIDE调用都使用淡出过渡。
有一个悬而未决的 5 年前的问题,对 QT 提出了基本相同的问题,但由于这是一个 Win32 问题,而不是 QT 特有的问题,所以我决定以更一般的方式重新提出这个问题。
小智 0
根据西藏海岸的评论,我在我的 Delphi 应用程序中为名为 FormPreview 的表单执行了此操作:
FormPreview.Perform(CM_RECREATEWND, 0, 0);
FormPreview.ShowModal;
Run Code Online (Sandbox Code Playgroud)
解决了我显示和重新显示表单的问题。
| 归档时间: |
|
| 查看次数: |
278 次 |
| 最近记录: |