レンダリングを無効にしたい編集コントロールがありますが、インタラクティブのままにしておきます(所有者が描画したコントロールと同様)。今、私はウィンドウをサブクラス化し、次のような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を使用してその空間でレンダリングしているときに空域の問題が発生します。
編集ボックスが何もレンダリングしないようにサブクラスを完了するにはどうすればよいですか?