全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2642
推到 Plurk!
推到 Facebook!

不規則 button 的元件.

答題得分者是:skcc
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-31 13:00:03 IP:203.75.xxx.xxx 未訂閱
想請教大家的使用經驗, 3rd Party 中, 不管要不要錢, 可用於 BCB5 or later 的不規則 button 元件那個最值得推薦. Jesse Chan
------
Jesse Chan
skcc
中階會員


發表:36
回覆:96
積分:88
註冊:2002-08-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-31 13:23:32 IP:203.198.xxx.xxx 未訂閱
引言: 想請教大家的使用經驗, 3rd Party 中, 不管要不要錢, 可用於 BCB5 or later 的不規則 button 元件那個最值得推薦. Jesse Chan
以下為自製橢圓形按鈕元件的方法: Header:
class PACKAGE TEllipseButton : public TButton
{
private:
protected:
        BEGIN_MESSAGE_MAP
                VCL_MESSAGE_HANDLER(WM_CREATE,TMessage , Create)
        END_MESSAGE_MAP(TButton)
public:
        __fastcall TEllipseButton(TComponent* Owner);
        virtual void __fastcall Create(TMessage &Msg);
__published:
};
Cpp:
static inline void ValidCtrCheck(TEllipseButton *)
{
        new TEllipseButton(NULL);
}
__fastcall TEllipseButton::TEllipseButton(TComponent* Owner)
        : TButton(Owner)
{
}
namespace Ellipsebutton
{
        void __fastcall PACKAGE Register()
        {
                 TComponentClass classes[1] = {__classid(TEllipseButton)};
                 RegisterComponents("Anthony", classes, 0);
        }
}
void __fastcall TEllipseButton::Create(TMessage &Msg)
{
        //TODO: Add your source code here
        HRGN h_rgn;
        h_rgn = CreateEllipticRgn(0, 0, Width, Height);
        SetWindowRgn(Handle, h_rgn, true);
}
以 package 形式 install,開另一個新專檔,把 TEllipseButton 元件置入使用即可! 註:其他形狀,請查看 Help 中 API 繪製。 Anthony Lee
skcc
中階會員


發表:36
回覆:96
積分:88
註冊:2002-08-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-31 14:12:50 IP:203.198.xxx.xxx 未訂閱
以 TBitBtn 元件亦可做圖角按鈕: 1. 置入 TBitBtn 元件到 Form 中, 2. 假設你有一圖,如: 3. 把 BitBtn1 的屬性分別設為:Width=50; Height=49; Glyph=(上述 BitMap); NumGlyps=4; 4. 加入以下 Code。
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{       HRGN hRoundRectRegion1 = CreateRoundRectRgn( 0,
                                                0,
                                                BitBtn1->Width+1,
                                                BitBtn1->Height+1,
                                                14,
                                                14 );       SetWindowRgn( BitBtn1->Handle, hRoundRectRegion1, TRUE );
..
即成! Anthony Lee 發表人 - skcc 於 2002/12/31 14:15:07
skcc
中階會員


發表:36
回覆:96
積分:88
註冊:2002-08-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-31 14:21:49 IP:203.198.xxx.xxx 未訂閱
祇要發揮一下想像力,你會發現還有很多方法,均可達成不規則按鈕的。例如: 配合 Macromedia Flash MX 一起開發、ActiveSkin、TImage 元件…等等,都可以做到不規則元件的。如有問題,一起討論。 Anthony Lee
Cooky Kid
初階會員


發表:5
回覆:68
積分:44
註冊:2002-07-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-31 14:33:57 IP:210.58.xxx.xxx 未訂閱
引言: 想請教大家的使用經驗, 3rd Party 中, 不管要不要錢, 可用於 BCB5 or later 的不規則 button 元件那個最值得推薦. Jesse Chan
如果實在找不到現成的元件, 請參考keenn大大整理的純手工不規則外框大成 ( http://forum.vclxx.org/topic.php?TOPIC_ID=12875&FORUM_ID=12&CAT_ID=3&Topic_Title=ActiveSkin%2C%A7%EF%C5%DCForm%A5%7E%AB%AC%2C+%BA%7D%ABG%A4%B6%AD%B1%2E%2E%2E%A7%B9%BE%E3%B8%D1%B5%AA%7E&Forum_Title=C%2B%2B ) good luck!!!
jessechan
版主


發表:109
回覆:394
積分:254
註冊:2002-04-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-01 11:50:26 IP:61.228.xxx.xxx 未訂閱
感謝大家的幫忙, Cooly Kid 尤其謝謝您轉貼的連結, 可惜我只能給一個人分數. 先向您說 sorry. Jesse Chan
------
Jesse Chan
系統時間:2024-04-19 9:18:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!