Hi,
ich wollt's mal ausprobieren, komme aber nicht weiter. Ich möchte in einem Listview ein Hintergrundbild einbauen (wie in dem Windows Explorer zB. die Lupe oder Note).
Habe schon verschiedenes ausprobiert ohne Erfolg.

Die leztze Version meines Versuches sieht so aus:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74:
| type TfrmMain = class(TForm) ListView1: TListView; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private LVOldWndProc: TWndMethod; procedure ListViewSetBKImage; procedure LVWindowProc(var Msg: TMessage); public end;
var frmMain: TfrmMain;
implementation
{$R *.dfm}
uses ShellAPI, CommCtrl, ComObj;
procedure TfrmMain.FormCreate(Sender: TObject); begin ListViewSetBKImage;
LVOldWndProc := ListView1.WindowProc; ListView1.WindowProc := LVWindowProc; end;
procedure TfrmMain.ListViewSetBKImage; var LVBkImg: TLVBkImage; FFilename: String; FTile: Boolean; FXOffsetPercent, FYOffsetPercent: Integer; begin FFilename := 'C:\Windows\Angler.bmp'; FTile := FALSE; FXOffsetPercent := 0; FYOffsetPercent := 0;
if assigned(ListView1) and ListView1.HandleAllocated then begin if FFilename <> '' then LVBkImg.ulFlags := LVBKIF_SOURCE_URL else LVBkImg.ulFlags := LVBKIF_SOURCE_NONE; if FTile then LVBkImg.ulFlags := LVBkImg.ulFlags or LVBKIF_STYLE_TILE else LVBkImg.ulFlags := LVBkImg.ulFlags or LVBKIF_STYLE_NORMAL;
LVBkImg.hbm := 0; LVBkImg.pszImage := PChar(FFilename); LVBkImg.cchImageMax := Length(FFilename); LVBkImg.xOffsetPercent := FXOffsetPercent; LVBkImg.yOffsetPercent := FYOffsetPercent; ListView_SetBkImage(ListView1.Handle, @LVBkImg);
end; end;
procedure TfrmMain.LVWindowProc(var Msg: TMessage); begin Case Msg.Msg of WM_ERASEBKGND: DefaultHandler(Msg); else LVOldWndProc(Msg); end; end; |
Die selbe Frage gibt es auch hier:
DP