カスタム描画を使用して、透明なツリー ビューを作成しようとしています (今のところ、Visual Styles が有効になっている場合をテストしています)。
私のCDDS_PREPAINT
ハンドラーは正常に動作し、ツリーには親の背景ビットマップが適切に描画されています。
を使用して返すCDDS_ITEMPREPAINT
ところにハンドラーを追加しようとしましたが、失敗しました。ノードはデフォルトの白い背景で描画されます。SetBkColor( ((LPNMCUSTOMDRAW)lParam)->hdc, TRANSPARENT );
CDRF_NEWFONT
アイテムのテキストの背景を透明にするにはどうすればよいですか?
ありがとうございました。
よろしくお願いします。
以下は、例示的なコード スニペットです。
switch( ((LPNMCUSTOMDRAW)lParam)->dwDrawStage )
{
case CDDS_PREPAINT:
{
DrawThemeParentBackground(
((LPNMCUSTOMDRAW)lParam)->hdr.hwndFrom,
((LPNMCUSTOMDRAW)lParam)->hdc,
&((LPNMCUSTOMDRAW)lParam)->rc );
// since tree is in dialog box we need below statement
SetWindowLongPtr( hDlg, DWLP_MSGRESULT, (LONG_PTR)CDRF_NOTIFYITEMDRAW );
return TRUE;
}
break;
case CDDS_ITEMPREPAINT : // how to properly handle this ???
{
SetBkMode( ((LPNMCUSTOMDRAW)lParam)->hdc, TRANSPARENT );
SetWindowLongPtr( hDlg, DWLP_MSGRESULT, (LONG_PTR)CDRF_NEWFONT );
return TRUE;
}
break;
}