Einzelnen Beitrag anzeigen

Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Listview spalte ausblenden

  Alt 10. Dez 2003, 14:07
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 Hier im Forum suchensubclassing 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.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat