線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2998
推到 Plurk!
推到 Facebook!

改變form的外觀及半透明範例

 
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-06 14:31:14 IP:218.163.xxx.xxx 未訂閱
這是我在網路深度論壇上學到一些技巧,並且把這些技巧 寫成一個範例! http://myweb.hinet.net/home5/liangnet/Form.rar
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-06 17:01:35 IP:61.218.xxx.xxx 未訂閱
Source Code如下:
Unit1.cpp    /---------------------------------------------------------------------------    #include 
#pragma hdrstop    #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------    void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Label1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
if( Button == mbLeft)
{
        long lStyle;
        lStyle=GetWindowLong(Handle, GWL_EXSTYLE );
        lStyle |= 0x00080000;
        SetWindowLong(Handle, GWL_EXSTYLE, lStyle );            // 設定半透明, 參數3: 0=全透明 , 255為不透明
        for (int i = 255 ; i >= 105; i-=4)
        {
                SetLayeredWindowAttributes(Handle, RGB(255,0,255), i,3); //現在設為 150,即半透明狀態
        }            ReleaseCapture();
        Perform( WM_SYSCOMMAND, 0xf012, 0 );
        Application->ProcessMessages();            for (int i = 55 ; i <= 255; i =10)
        {
                SetLayeredWindowAttributes(Handle, RGB(255,0,255), i,3); //現在設為 150,即半透明狀態
        }
}    }
//---------------------------------------------------------------------------    Unit1.H    //---------------------------------------------------------------------------    #ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include 
#include 
#include 
#include <Forms.hpp>
#include 
#include 
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:        // IDE-managed Components
        TImage *Image1;
        TButton *Button1;
        TLabel *Label1;
        TLabel *Label2;
        TEdit *Edit1;
        void __fastcall Button1Click(TObject *Sender);
        void __fastcall Label1MouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y);
private:        // User declarations
public:                // User declarations
        __fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
/*生活是一種藝術,用心生活才能享受生活*/
CuteBabyBoy
初階會員


發表:18
回覆:97
積分:48
註冊:2003-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-06 19:10:33 IP:218.167.xxx.xxx 未訂閱
這是我以前所寫的程式 就算補充嘍...^^ Baby
liangnet
中階會員


發表:19
回覆:148
積分:83
註冊:2004-01-03

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-02-06 23:32:02 IP:203.204.xxx.xxx 未訂閱
引言: 這是我以前所寫的程式 就算補充嘍...^^ Baby
真的啊,這個範例程式是在論壇裡看到的技巧,我把透半透明的及不規則form和無標題form拖曳整理在一起。
ldd
一般會員


發表:12
回覆:62
積分:19
註冊:2004-07-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-11-03 00:37:27 IP:59.104.xxx.xxx 未訂閱
liangnet 你好 你的程式無法正常的編譯 好像少了檔案?? axsoft你好 雖然你的程式碼可以設成透明但是一但透明化 Form上面的物件也跟著透明化了是否有方法可以讓Parent透明化但是上面的物件不呈現透明~~?? Thanks
enter2004
初階會員


發表:51
回覆:94
積分:34
註冊:2005-04-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-11-29 01:56:42 IP:218.168.xxx.xxx 未訂閱
您好: 參照我最新發表的作品 即可達到您的需求 只使某一個元件半透明,而其他不變。 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=81992 這個過程實現有點複雜 但是我已經將他包裝成一個函示庫 你可以直接呼叫使用! 如果可以的話請給分唷~
------
人生就像泡泡一樣,乘著風被吹著跑,等你發現時已經消失了。
就在快要消失的瞬間,希望能再飛高一點,
但是回神時總是慢了一步。
系統時間:2024-04-30 0:18:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!