我有一个编辑控件,我想禁用任何渲染,但将其保留为交互式(类似于所有者绘制的控件)。现在,我已经将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在该空间中渲染时会导致空域问题。
如何完成子类以使编辑框永远不会呈现任何内容?