Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo resolver el problema de la altura del encabezado de la barra de título del control TListView

Cómo resolver el problema de la altura del encabezado de la barra de título del control TListView

Un fragmento de código realmente satisface las necesidades del propietario:

unidad de código Delphi (Pascal) Unidad1

interfaz

usa

Windows, Mensajes; , SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,

Diálogos, ExtCtrls, StdCtrls, ComCtrls Gráficos, controles, formularios,

Cuadros de diálogo, ExtCtrls, StdCtrls, ComCtrls,. CommCtrl;

Tipo

TForm1 = clase(TForm)

TListView

ListView2: TListView

<; p> Etiqueta1: TLabel;

Etiqueta2:

procedimiento FormCreate(Remitente: TObject);

procedimiento FormClose(Remitente: TObject; var Acción: TCloseAction);

privado

{ Declaraciones privadas }

público

{ Declaraciones públicas }

fin;

var

Form1: TForm1;

lvhOldProc, lvhNewProc: TFarProc

hHeader:

Implementación

{$R *.dfm}

función LvHeaderNewWndProc(h: THandle; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; p>var

phdl: PDHLayout;

prct: PRect;

pwp: PWindowPos

comenzar

Resultado:= CallWindowProc(lvhOldProc, h, uMsg, wParam, lParam);

si uMsg = HDM_LAYOUT entonces

comenzar

phdl:= PHDLayout(lParam );

prct := PRect(phdl.Rect);

pwp := PWindowPos(phdl.WindowPos);

pwp.cy := pwp. cy 10; // La altura predeterminada del encabezado es 17, cámbiela a 17 10 = 27;

prct.top := pwp.cy 2; /p>

end p>

end;

procedimiento TForm1.FormCreate(Remitente: Sentate);

Procedimiento TForm1.FormCreate(Remitente: Sentate);

tate);

Fin. FormCreate(Remitente: TObject);

comenzar

hHeader:= ListView_GetHeader(ListView1.Handle);

lvhOldProc.= FARPROC(GetWindowLong(hHeader, GWL_WNDPROC) );

SetWindowLong(hHeader, GWL_WNDPROC, Longint(@LvHeaderNewWndProc));

fin

procedimiento TForm1.FormClose(Remitente: TObject; var Acción: TCloseAction);

comenzar

SetWindowLong(hHeader, GWL_WNDPROC, Longint(lvhOldProc));

end;

end.p>