名前 題名 ▼ Mr.XRAYさん > 確認してみました > > > ここでは、CDIS_FOCUSの時に色をRGBで設定していますから、それ以外のを > > 設定すれば可能かも知れません。 > > ダメだったらゴメンなさい。 > > とりあえず可能なようです。以下のコードでテストしました。 > Windows 7 U64 + Delphi 2010 > > --------------- ItemPrePaintイベント ----------------------------- > // pclrTextBkが文字列の背景色の設定 > // 選択中の文字列の背景色は常にシステム規定値らしい > > function TplExplorerFolderTree.ItemPrePaint(hdc: HDC; var prc: TRect; > var pnstccdItem: TNSTCCustomDraw; var pclrText, pclrTextBk: COLORREF; > var plres: LRESULT): HRESULT; > var > pShellItem : IShellItem; > pShellItemArray : IShellItemArray; > pidl : PItemIDList; > pFullPath : array [0..MAX_PATH - 1] of Char; > begin > pclrTextBk := clYellow; //この色を背景色と同じにする > if (pnstccdItem.uItemState and CDIS_FOCUS) > 0 then begin > pclrText := clBlue; > plres := CDRF_NEWFONT; > end else begin > pclrText := clRed; > end; > > 以下略 > > --------------- PrePaintイベント ----------------------------- > > function TplExplorerFolderTree.PrePaint(hdc: HDC; var prc: TRect; > var plres: LRESULT): HRESULT; > var > LogBrush :TLogBrush; > hbr : HBRUSH; > begin > LogBrush.lbStyle := BS_SOLID; > LogBrush.lbColor := clYellow; //これを文字例の背景色と同じにする > LogBrush.lbHatch := 0; > > hbr := CreateBrushIndirect(LogBrush); > FillRect(hdc, prc, hbr); > SetBkColor(hdc, TRANSPARENT); //これはいらなないかも知れない > plres := CDRF_NOTIFYITEMDRAW; > Result := S_OK; > end; > > 図は上記コードの場合の結果です。 > GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link