请问如何在bitbtn实现当鼠标移上时上面的图片改变,移开时又复原?(30分)

  • 主题发起人 主题发起人 xy_c
  • 开始时间 开始时间
响应Mouse_leave,Mouse_in消息,建议你看看SpeedButton的源码
 
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
private
procedure MyWndProc(var Message: TMessage);
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
OldMyWndProc: TWndMethod;
implementation
{$R *.dfm}
procedure TForm1.MyWndProc(var Message: TMessage);
begin
case Message.Msg of
CM_MOUSEENTER:
bitbtn1.glyph.LoadFromFile('d:/pic2.bmp');//鼠标移入
CM_MOUSELEAVE:
bitbtn1.glyph.LoadFromFile('d:/pic1.bmp');//鼠标移来
end;
OldMyWndProc(Message);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
OldMyWndProc := BitBtn1.WindowProc;
BitBtn1.windowProc := MyWndProc;
bitbtn1.glyph.LoadFromFile('d:/pic1.bmp');
end;
end.
 
同意楼上的,并且使用这种方法可以解决很多类似的问题.
 
为啥偏要用Bitbtn
用Toolbar+ImgList就简单多了
用不着写代码的
 
用小乙的很简单,用两个imglisty添加不同的片就可以。非常简单。
不过michael.fly也不错!!
 
都同意!也可试XP控件,蛮不错的
 
后退
顶部