程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中ListView列寬改變時的消息響應

Delphi中ListView列寬改變時的消息響應

編輯:Delphi
unit Unit1; 
 
interface 
 
uses 
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 
 Dialogs, StdCtrls, ComCtrls,CommCtrl; 
 
type 
 PHD_NOTIFY=^HD_NOTIFY; 
 TForm1 = class(TForm) 
  ListView1: TListView; 
  Button1: TButton; 
  procedure FormDestroy(Sender: TObject); 
  procedure Button1Click(Sender: TObject); 
 private 
  { Private declarations } 
  oldProc: TWndMethod; 
  procedure NewProc(var Message: TMessage); 
 public 
  { Public declarations } 
 end; 
 
var 
 Form1: TForm1; 
 
implementation 
 
{$R *.dfm} 
 
procedure TForm1.NewProc(var Message: TMessage); 
var hn:PHD_NOTIFY; 
begin 
 if message.Msg=WM_NOTIFY then 
 begin 
  hn:=PHD_NOTIFY(Message.LParam); 
  if(hn^.Hdr.code=HDN_BEGINTRACKA)or(hn^.hdr.code=HDN_BEGINTRACKW) then 
  begin 
   // Message.Result  :=  1;   加入這一行就使的列頭不能改變寬度 
   //  如果要在拖動完成後作處理,可以判斷hn->hdr.code是否 
   //  等於HDN_ENDTRACKA或HDN_ENDTRACKW,然後作處理。 
   ShowMessage('hehe'); 
  end 
  else 
   ListView1.Dispatch(Message); 
 end;  
end; 
 
procedure TForm1.FormDestroy(Sender: TObject); 
begin 
 ListView1.WindowProc:=OldProc; 
end; 
 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
 OldProc:= ListView1.WindowProc; 
 ListView1.WindowProc:= NewProc; 
end; 
 
end.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved