問題タブ [custom-draw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
46 参照

winapi - TreeView に CDDS_*ERASE イベントを送信させる方法は?

win32 でカスタマイズされた TreeView を実装しています。次のカスタム描画コードを用意します。

文書化されたすべての方法で、対応する CDRF を CDDS_PREPAINT から返さなければならないというドキュメントにもかかわらず、ビューにメッセージを送信させようとしましたが、CDDS_*ERASEまったく運がありませんでした。私はまったく不可能なことをしている/望んでいますか?

UPD: カスタム描画はウィンドウ プロシージャで行われます。pResultが正しく返され、キャッチCDDS_ITEMPOSTPAINTされて正しく処理されます。トリガーされCDDS_*ERASEないままです。

ユースケース: TreeView アイテムが以前の座標から消去される瞬間をキャッチする必要があるため、カスタム クリーンアップ コードを実行できます。はCDDS_ITEMPOSTPAINTカスタム描画とうまく調和しますが、古いカスタムのものを消去する方法がないため、スクロールとナビゲーション中に描画が複製されます。