Combobox中禁止鼠标中键滚动list列表

//第1种方法

procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;

  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

begin

 if ActiveControl = ComboBox1 then

    Handled := True;

end;

//第2种方法(了解该方法后,以后会有助于我们处理更复杂的问题)

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    cbb1: TComboBox;

    procedure FormCreate(Sender: TObject);

    procedure FormDestroy(Sender: TObject);

  private

    { Private declarations }

     FOldWndProc:  TWndMethod;

  public

    { Public declarations }

    procedure  NewWndProc(var  Message:  TMessage);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure  TForm1.NewWndProc(var  Message:  TMessage);

begin

    if  ((Message.Msg  <>  WM_MOUSEWHEEL)  )  then

        FOldWndProc(Message);

end;



procedure TForm1.FormCreate(Sender: TObject);

begin

 FOldWndProc  :=  cbb1.WindowProc;

 cbb1.WindowProc  :=  NewWndProc;



end;



procedure TForm1.FormDestroy(Sender: TObject);

begin

  cbb1.WindowProc  :=  FOldWndProc;

end;
View Code

你可能感兴趣的:(combobox)