Mit der Breite 0 hab ich das auch mal gelöst. Und zum Verhindern der Spaltenbreitenveränderung hab ich das Listview subgeclasst und bzw.
HDN_BEGINTRACKA abgefangen. Hier ist der Code für
nonVCL:
Delphi-Quellcode:
function IPLVWndProc(hWnd: HWND; uMsg: UINT; wParam: wParam; lParam: lParam):
lResult; stdcall;
begin
Result := 0;
case uMsg of
WM_NOTIFY:
begin
with PNMHdr(lParam)^ do
begin
if (code = HDN_BEGINTRACKW) or (code = HDN_BEGINTRACKA) then
with PHDNotify(lParam)^ do Result := Integer(Item = 0);
end;
CallWindowProc(OldIPLVWndProc, hWnd, uMsg, wParam, lParam);
end;
else
Result := CallWindowProc(OldIPLVWndProc, hWnd, uMsg, wParam, lParam);
end;
end;
Such mal hier nach
subclassing VCL, damit solltest du den Code für die
VCL portieren können.
Ach so: hier wird verhindert, dass die 1. Spalte (
Index 0) verändert wird.