关于delph控件制作的难题!(100分)

  • 主题发起人 主题发起人 Action
  • 开始时间 开始时间
前缀是CM_,不是WM_
详细的可以查阅/Source/Rtl/Win/Messages.pas
还有/Source/Toolsapi/dsgnIntf.pas
写控件一定要看啊
 
可以这样
type
Tbutton1 = class(Tbutton)
private
procedure FmsgCMMouseEnter(var Message: TMessage);message CM_MOUSEENTER;//你自己需要新建的过程1
procedure FmsgCMMouseLeave(var Message: TMessage);message CM_MOUSELEAVE;//你自己需要新建的过程2
public
constructor create(aowner:Tcomponent);override;
//先按上边声明一下
//然后再这样:
begiconstructor Tbutton1.create(aowner:Tcomponent);
begin
inherited;
end;
procedure TButton1.FmsgCMMouseEnter(var Message: TMessage);//你自己需要新建的过程1
begin
caption:='进入';
end;
procedure TButton1.FmsgCMMouseLeave(var Message: TMessage);//你自己需要新建的过程2
begin
caption:='出来';
end;
 
顺便问一下怎么做不规则按钮控件?
 
关于CM_MOUSEENTER,CMMouseLeave, 最直接的学习例子就是看一下TSpeedButton的
源代码. 里面将的再清楚不过了.
至于不规则按钮,到"深度历险"上有很多例子,例如JVBITMAPBUTTON,主要的思路是
在Paint中使用Canvas.
 
后退
顶部