需要截获LVM_SETCOLUMN消息。例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, CommCtrl, StdCtrls;
type
TMyListView = class(TListView)
protected
procedure LVMSETCOLUMN(var Message: TMessage);
message LVM_SETCOLUMN;
end;
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
{ TMyListView }
procedure TMyListView.LVMSETCOLUMN(var Message: TMessage);
var
Lv: PLVColumn;
begin
inherited;
Lv := Pointer(Message.LParam);
if LVCF_WIDTH and Lv.mask <> 0 then
Form1.Edit1.Text := '第 '+IntToStr(Message.WParam)+ '列宽度改变为: '+IntToStr(Lv.cx);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyListView: TMyListView;
begin
MyListView := TMyListView.Create(Self);
MyListView.Parent := Self;
MyListView.ViewStyle := vsReport;
MyListView.Columns.Add.Caption := 'AA ';
MyListView.Columns.Add.Caption := 'BB ';
end;
end.
用户调整listview的column的width处理
最新推荐文章于 2019-05-27 13:32:12 发布