我有一个编辑控件,我想禁用任何渲染,但将其保留为交互式(类似于所有者绘制的控件)。现在,我已经对 Window 进行了子类化并捕获了 WM_PAINT,例如
SetWindowSubclass(box, [](HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam, UINT_PTR, DWORD_PTR) -> LRESULT {
if (msg != WM_PAINT)
return DefSubclassProc(hwnd, msg, wparam, lparam);
PAINTSTRUCT paint;
BeginPaint(hwnd, &paint);
EndPaint(hwnd, &paint);
return 0;
}, 0, 0);
这可以很好地禁用几乎所有编辑框的渲染。但是,当与它交互时,它仍然偶尔会清除它要渲染的区域,当我在该空间中使用 Direct3D 进行渲染时会导致空域问题。
如何完成子类以使编辑框永远不会呈现任何内容?