【问题标题】:WM_PAINT and DX12WM_PAINT 和 DX12
【发布时间】:2021-01-28 01:57:53
【问题描述】:

嗨!

有人可以回答我的问题吗? 我的程序有一个线程用于窗口的消息循环,另一个用于 D3D12 渲染。 一切都很好,但问题是什么窗口过程。应该用 WM_PAINT 做什么? 目前该应用程序有这样的代码片段:

case WM_PAINT:
    return 0;

有没有更好/更有效的方法,或者可以吗?

【问题讨论】:

  • 这是典型的 3D 渲染循环。有关更多示例,请参阅this code
  • 尊敬的 @chuck-walbourn 先生,我非常感谢您的支持。该代码很有趣,我对其进行了调查。问题是,我的架构有额外的渲染线程,我不知道在这种情况下我应该如何处理 WM_PAINT 消息(我不想使用这样的功能)。

标签: windows winapi visual-c++ directx-12


【解决方案1】:

通常情况下,Win32 渲染循环会在渲染未启动或由于某种原因停止的情况下进行简单的绘制(因此您至少看不到窗口后面的“垃圾”)。

    {
    case WM_PAINT:
        {
            PAINTSTRUCT ps;
            (void)BeginPaint(hWnd, &ps);
            EndPaint(hWnd, &ps);
        }
        break;

...
   }

    return DefWindowProc(hWnd, message, wParam, lParam);

【讨论】:

    猜你喜欢
    • 2012-09-09
    • 2014-03-29
    • 2015-12-23
    • 2015-02-14
    • 2018-11-10
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多