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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- aardio 背景透明的3種方式(透明窗體1 webview2,透明窗體2-win-region-bitmap,透明窗體3-winform-transparent-color)WebViewORM
- 利用BCB編寫具有"磁性"特徵的視窗 (轉)特徵
- 在BCB中輕鬆使用ActiveX控制元件 (轉)控制元件
- BCB動態生成控制元件控制元件
- Effective BCB Form Program(1) ——窗體事件驅動鏈引發程式錯誤分析 (轉)ORM事件
- Effective BCB Form Program(2) ——窗體事件驅動鏈引發程式錯誤分析 (轉)ORM事件
- 在BCB中使用向量實現控制元件陣列 (轉)控制元件陣列
- 玩轉BCB的IDE,體驗ToolsAPI (轉)IDEAPI
- 子視窗控制元件(轉)控制元件
- BCB:TEdit控制元件右對齊的簡單實現 (轉)控制元件
- 關於Windows2000透明窗體的製作(重發) (轉)Windows
- emacs視窗半透明Mac
- BCB5:TrayIcon控制元件的使用、問題及對策 (轉)控制元件
- C#遍歷窗體控制元件程式碼,遍歷窗體所有按鈕控制元件程式碼C#控制元件
- vb窗體中控制元件自動隨窗體變化大小(原始碼)控制元件原始碼
- 在bcb裡實現像Winamp那樣具有吸附效果的磁性視窗 (轉)
- 一個問題——在MDI窗體中新增控制元件後顯示子窗體控制元件
- 快速清空C#WINFORM窗體控制元件值C#ORM控制元件
- react navigation實現透明彈窗ReactNavigation
- 效能調優的Windows窗體DataGridView控制元件WindowsView控制元件
- C#建立不規則窗體和控制元件C#控制元件
- 在BCB中陣列的妙用和紀錄和改變控制元件的狀態 (轉)陣列控制元件
- 巧用窗體控制元件完成表格規範化填寫控制元件
- 自定義Toast及視窗透明處理AST
- 直播平臺原始碼,窗體透明的,黑暗度等的設定技巧原始碼
- Qt 無邊框、透明、可移動、的個性窗體案例詳解QT
- C#實現窗體拖動、不允許窗體拖動、任意控制元件執行時拖動C#控制元件
- BCB中實現動態建立元件 (轉)元件
- 使用BCB製作控制面版程式 (轉)
- iTerm2 如何設定半透明視窗?
- 用BCB在windows桌面建立快捷方式 (轉)Windows
- BCB 客戶端 tuxedo 開發例項 (轉)客戶端UX
- WPF窗體中嵌入/使用WinForm類/控制元件(基於.NET Core)ORM控制元件
- Iframe 父子窗體互調javascript方法及相互獲取控制元件JavaScript控制元件
- 讓普通控制元件擁有左鍵移動窗體的功能控制元件
- 利用DOTNETBAR製作圓角窗體和圓角控制元件控制元件
- Excel VBA - 控制元件與使用者窗體 及 常用函式Excel控制元件函式
- 帶有半透明遮罩層可關閉視窗遮罩