BCB 窗體透明控制元件 (轉)
BCB 窗體透明控制元件 (轉)[@more@]本文根據 CandyCat 收藏的 《實現窗體的半透明效果(作者:羅薔)》一文修改而成,供BCB+使用。將即可使用 btw:分類裡面,沒有BCB,只好貼到裡面 //////////////////////////////////////////////////////////////////////////////////////////////// 頭: //--------------------------------------------------------------------------- #ifndef TransparentFormH
#define TransparentFormH
//---------------------------------------------------------------------------
#include
#include
#include
#include
//---------------------------------------------------------------------------
class PACKAGE TTransparentFo: public TComponent
{
private:
protected:
int m_nAlphaValue;
HWND m_hParentFormHandle;
void __fastcall SetAlphaValue(int nAlpha);
void __fastcall UpdateDisplay();
public:
__fastcall TTransparentForm(TComponent* Owner);
__published:
__property int AlphaValue = {read = m_nAlphaValue, write = SetAlphaValue, default = 0};
};
//---------------------------------------------------------------------------
#endif
//////////////////////////////////////////////////////////////////////////////////////////////// cpp檔案: //--------------------------------------------------------------------------- #include
#pragma hdrstop #include "TransparentForm.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TTransparentForm *)
{
new TTransparentForm(NULL);
}
//---------------------------------------------------------------------------
__fastcall TTransparentForm::TTransparentForm(TComponent* Owner)
: TComponent(Owner)
{
if (ComponentState.Contains(csDesigning))
return;
m_nAlphaValue = 255 ;
m_hParentFormHandle = ((TForm *)(Owner))->Handle ;
SetWindowLong(m_hParentFormHandle, GWL_EXSTYLE, GetWindowLong(m_hParentFormHandle, GWL_EXSTYLE) | WS_EX_LAYERED);
}
//---------------------------------------------------------------------------
namespace Transparentform
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TTransparentForm)};
RegisterComponents("Easysoft", classes, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TTransparentForm::SetAlphaValue(int nAlpha)
{
if (nAlpha >= 0 && nAlpha < 256)
{
m_nAlphaValue = nAlpha;
UpdateDisplay();
}
} void __fastcall TTransparentForm::UpdateDisplay()
{
if (ComponentState.Contains(csDesigning))
return;
SetLayeredWindowAttributes(m_hParentFormHandle, 0, m_nAlphaValue, 2);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//5/19/2001
#define TransparentFormH
//---------------------------------------------------------------------------
#include
#include
#include
#include
//---------------------------------------------------------------------------
class PACKAGE TTransparentFo: public TComponent
{
private:
protected:
int m_nAlphaValue;
HWND m_hParentFormHandle;
void __fastcall SetAlphaValue(int nAlpha);
void __fastcall UpdateDisplay();
public:
__fastcall TTransparentForm(TComponent* Owner);
__published:
__property int AlphaValue = {read = m_nAlphaValue, write = SetAlphaValue, default = 0};
};
//---------------------------------------------------------------------------
#endif
//////////////////////////////////////////////////////////////////////////////////////////////// cpp檔案: //--------------------------------------------------------------------------- #include
#pragma hdrstop #include "TransparentForm.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------
// ValidCtrCheck is used to assure that the components created do not have
// any pure virtual functions.
//
static inline void ValidCtrCheck(TTransparentForm *)
{
new TTransparentForm(NULL);
}
//---------------------------------------------------------------------------
__fastcall TTransparentForm::TTransparentForm(TComponent* Owner)
: TComponent(Owner)
{
if (ComponentState.Contains(csDesigning))
return;
m_nAlphaValue = 255 ;
m_hParentFormHandle = ((TForm *)(Owner))->Handle ;
SetWindowLong(m_hParentFormHandle, GWL_EXSTYLE, GetWindowLong(m_hParentFormHandle, GWL_EXSTYLE) | WS_EX_LAYERED);
}
//---------------------------------------------------------------------------
namespace Transparentform
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TTransparentForm)};
RegisterComponents("Easysoft", classes, 0);
}
}
//---------------------------------------------------------------------------
void __fastcall TTransparentForm::SetAlphaValue(int nAlpha)
{
if (nAlpha >= 0 && nAlpha < 256)
{
m_nAlphaValue = nAlpha;
UpdateDisplay();
}
} void __fastcall TTransparentForm::UpdateDisplay()
{
if (ComponentState.Contains(csDesigning))
return;
SetLayeredWindowAttributes(m_hParentFormHandle, 0, m_nAlphaValue, 2);
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
//5/19/2001
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-996103/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- WPF 透明窗體
- aardio 背景透明的3種方式(透明窗體1 webview2,透明窗體2-win-region-bitmap,透明窗體3-winform-transparent-color)WebViewORM
- 用WPF做炫酷的透明窗體
- Simple WPF: WPF 透明窗體和滑鼠事件穿透事件穿透
- react navigation實現透明彈窗ReactNavigation
- 向 splitContainer1 控制元件中新增子窗體AI控制元件
- 直播平臺原始碼,窗體透明的,黑暗度等的設定技巧原始碼
- iTerm2 如何設定半透明視窗?
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- 帶有半透明遮罩層可關閉視窗遮罩
- C# WPF 跳轉到第二個窗體C#
- PyQt5視窗繪圖控制元件QT繪圖控制元件
- WPF建立不規則窗體時WebBrowser控制元件不顯示的問題Web控制元件
- PyQt5——視窗繪圖類控制元件QT繪圖控制元件
- Winform窗體控制元件雙向繫結資料模擬讀寫PLC資料ORM控制元件
- windows窗體Windows
- [轉帖]深度探究Linux核心透明巨型頁Linux
- WPF中不規則窗體與WindowsFormsHost控制元件的相容問題完美解決方案WindowsORM控制元件
- .NET 控制元件轉圖片控制元件
- windows10系統下讓視窗標題欄透明的方法Windows
- 窗體事件 1130事件
- PyQT5之設定視窗控制元件風格QT控制元件
- Java 將PDF轉為透明背景的圖片Java
- Unity3D 透明物體ShaderUnity3D
- WebGL半透明物體的繪製Web
- C# 如何重複呼叫父窗體中的子窗體C#
- Winform在主窗體載入前彈出登入窗體ORM
- 窗體傳值 父子窗體傳值情況 c# 1231C#
- Fluid Browser for Mac(多工懸浮透明視窗瀏覽器)1.6啟用版UIMac瀏覽器
- 附例項!實現iframe父窗體與子窗體的通訊
- winform之在主窗體中不顯示子窗體的選單欄ORM
- 透明度與十六進位制程式碼轉換
- WinForm禁止窗體調整ORM
- C#窗體--滑鼠事件C#事件
- mfc+最大最小化視窗+控制元件變化+圖片(視訊幀)顯示在控制元件上控制元件
- OCX 控制元件主動傳送訊息給 MFC 視窗訊息控制元件
- php 跳轉頁面之前彈窗提示PHP
- 文件透明加密軟體哪家好?window透明加密軟體產品如何對電子檔案加密?陝西風奧科技加密
- C#實現窗體全屏C#