发布网友 发布时间:2022-04-11 20:03
共2个回答
热心网友 时间:2022-04-11 21:33
是的,direct2d 在WM_PAINT里更新客户区;如下代码:
case WM_PAINT:
OnRender(hwnd);
// 设置有效区避免WM_PAINT消息占用大量cpu
ValidateRect(hwnd, NULL);
return 0;
OnRender为D2D绘制具体内容;渲染后必须立即设定ValidateRect,否则会大量占用资源。
定时绘制可以监听WM_TIMER消息,并使用PostMessage函数发送绘制消息,在此之前需要在创建窗口时设置计时器:
case WM_CREATE:
SetTimer(hwnd, 1, 1000, NULL);
return 0 ;
case WM_TIMER:
PostMessage(hwnd, WM_PAINT, 0, 0);
return 0 ;
更多Direct2d可以参考网页链接
热心网友 时间:2022-04-11 22:51
D2D 如果我没理解错,就是CDC画图。