BitBtn就可以了,何必自己做呢?

解决方案 »

  1.   

    在VC++中是将按钮风格添加一个CS_OWNERDRAW,然后写相应的消息处理方法
    。DELPHI中不知道怎么做,因该和CreateParam以及自定义事件有关吧。
      

  2.   

    Speedbutton和bitbtn都可以用呀,并且Speedbutton可以有不同的显示风格为什么要自己做呢
      

  3.   

    BitBtn就可以了,利用其KIND属性或GLYPH属性
      

  4.   

    看看 Speedbutton和bitbtn 的源代码
      

  5.   

    ★★★★★★★★★★★★★★★★★★★★★★★       我告诉你,你要马上给我分数★★★★★★★★★★★★★★★★★★★★★★★
    界面分三层:
    1、最底层放个Panel
    2、再放个Image在Panel上
    3、然后把SpeedButton放在 Image上。完成以上工作之后,你在Image的Picture属性里加个图片,
    最后,把SpeedButton的Flat属性改为True 。
    大功告成!!!
      

  6.   

    是不是像WindowsXp那样的按钮?鼠标指上去会变,单击时也会变的那种?
    自己写一个TMyButton吧,基类是TImage.增加三个变量
    FPicture1..3: TPicture; 分别用来存储三幅图片。
    在增加三个属性
    properties Picture1: TPicture read FPicture1 write SetPicture;
    依次类推
    Procedure SetPicture(Value: TPictrure)
    begin
      FPicture1.Assign(Value);
    end;
    在给它增加处理WM_MOUSELEAVE,WM_MOUSEENTER,WM_LBUTTONDOWN,WM_LBUTTONUP消息的函数。
    分别将TMyButton的Picture属性改为你需要的图片Picture1..3
    就可以了。
      

  7.   

    楼上几位兄弟说的没错,都可以实现,但是有一个共同的问题就是:这种Button不接受焦点,那该怎么办呢?
    哈哈
    其实Delphi里也可以自己画TButton(带输入焦点的),只是做法与VC不同,你首先要CreateParam来让他自己画,然后就自己画的了,他用到有一个消息CN_DRAWITEM,我自己做了一个控件,是自己画的(画的不是很好看,但完全可以说明问题)。
    你要吗?如果想要,我要看你出多少分,再来决定
    哈哈
      

  8.   

    请教 xiaojiuzhou(笑九州) ,Button接受焦点是什么意思?
    是不是鼠标移到Button上面,Button会 flash一下?
      

  9.   

    就是按Tab键他可以跳转,并且支持回车。否则不支持键盘。
    这个你自己可以画。
    位图按钮就不接受焦点