異形視窗 仿七彩虹光碟介面程式

2021-08-04 07:40:40 字數 3923 閱讀 7360

png

透明窗體全攻略(控制項不透明)

mfc介面程式設計1

:gdi+

實現不規則窗體

vc++

玩轉炫酷懸浮窗3---gdi+

完美實現不規則窗體

gdi+

程式設計小結

updatelayeredwindow

與setlayeredwindowattributes

layered window

透明窗體的實現總結

用updatelayeredwindow

實現任意異形視窗

codeproject 案例

具有windows 2000

及更高版本的標準控制項的酷,半透明和異形對話方塊

完美的半透明和形狀的對話方塊與標準的activex

和半透明控制項為windows 2000+

更新的位置、大小、形狀、內容和半透明的分層視窗。

bool winapi updatelayeredwindow(

_in_    hwnd          hwnd,//視窗控制代碼

_in_opt_ hdc          hdcdst,//螢幕上下文dc

_in_opt_ point        *pptdst,//視窗相對於螢幕的位置的point結構的指標

_in_opt_ size         *psize,//顯示視窗大小

_in_opt_ hdc          hdcsrc,//視窗上下文dc

_in_opt_ point        *pptsrc,//視窗繪圖表面在裝置上下文位置的point結構的指標

_in_     colorref     crkey,

_in_opt_ blendfunction *pblend,//透明混合引數

_in_    dword         dwflags

);引數

hwnd [in]

型別:hwnd

分層視窗的控制代碼。通過使用createwindowex函式建立視窗時,通過指定ws_ex_layered建立分層視窗。

windows 8的:  該ws_ex_layered樣式支援頂級視窗和子視窗。以前的windows版本僅支援頂級視窗ws_ex_layered。

hdcdst [in,可選]

型別:hdc

螢幕的dc的控制代碼。呼叫該函式時,通過指定null獲得該控制代碼。當視窗內容更新時,它用於調色盤顏色匹配。如果hdcdst為null,將使用預設調色盤。

如果hdcsrc為null,則hdcdst必須為null。

pptdst [in,optional]

型別:point *

指向分層視窗的新螢幕位置的結構的指標。如果當前位置不變,pptdst可以為null。

psize [in,可選]

型別:size *

指向結構的指標,指定分層視窗的新大小。如果視窗的大小沒有改變,psize可以為null。如果hdcsrc為null,則psize必須為null。

hdcsrc [in,可選]

型別:hdc

用於定義分層視窗的表面的dc的手柄。可以通過呼叫createcompatibledc函式獲得該控制代碼。如果視窗的形狀和視覺上下文不變,hdcsrc可以為null。

pptsrc [in,optional]

型別:point *

指向指定裝置上下文中圖層位置的結構的指標。如果hdcsrc為null,則pptsrc應為null。

crkey [in]

型別:colorref

指定在組合分層視窗時使用的顏色鍵的結構。要生成colorref,請使用rgb巨集。

pblend [in,可選]

型別:blendfunction *

指向結構的指標,該結構指定在組合分層視窗時要使用的透明度值。

dwflags [in]

型別:dword

此引數可以是以下值之一。

值 含義

ulw_alpha 0x00000002 使用pblend作為混合功能。如果顯示模式為256色以下,則該值的效果與ulw_opaque的效果相同。

ulw_colorkey 00000001 使用crkey作為透明度顏色。

ulw_opaque 0x00000004 畫乙個不透明的分層視窗。

如果hdcsrc為null,則dwflags應為零。

blendfunction結構混合控制混合通過指定源和目標點陣圖的功能。

typedef struct _blendfunction blendfunction, *pblendfunction, *lpblendfunction;

blendop:指定ac_src_over

blendflags:必須為0

sourceconstantalpha:指定乙個alpha透明度值被用於整個源位圖。sourceconstantalpha值加上任何在源位圖的alpha值。假設你的影象是透明的,sourceconstantalpha設定為0。sourceconstantalpha值設定為255(不透明的)。

alphaformat:這個引數控制源和目標的解析方式,使用ac_src_alpha

ac_src_alpha這個值在源有alpha通道時(也就是操作的圖本身帶有透明通道資訊時),提醒系統api呼叫函式前必須預先乘以alpha值,也就是說點陣圖上某個畫素位置的red、green、blue通道值必須先與alpha相乘。例如,如果alpha透明值是x,那麼red、green、blue三個通道的值必須乘以x並且再除以255(因為alpha的值的範圍是0~255),之後才能被呼叫。

設定分層視窗的不透明度和透明度顏色鍵。

bool winapi setlayeredwindowattributes(

_in_ hwnd hwnd,

_in_ colorref crkey,

_in_ byte balpha,

_in_ dword dwflags

);引數

hwnd [in]

型別:hwnd

分層視窗的控制代碼。通過在createwindowex函式建立視窗時指定ws_ex_layered或通過在建立視窗後通過setwindowlong設定ws_ex_layered來建立分層視窗。

windows 8的:  該ws_ex_layered樣式支援頂級視窗和子視窗。以前的windows版本僅支援頂級視窗ws_ex_layered。

crkey [in]

型別:colorref

甲colorref構成分層視窗時要使用用於說明透明度顏色鍵結構。這個顏色的視窗所畫的所有畫素將是透明的。要生成colorref,請使用rgb巨集。

balpha [in]

型別:byte

alpha值用於描述分層視窗的不透明度。類似於blendfunction結構的sourceconstantalpha成員。當balpha為0時,視窗完全透明。當balpha是255時,視窗是不透明的。

dwflags [in]

型別:dword

要採取的行動。此引數可以是以下值中的乙個或多個。

值  含義

lwa_alpha  0x00000002  使用balpha來確定分層視窗的不透明度。

lwa_colorkey  00000001  使用crkey作為透明度顏色。

使用gdi+貼圖,利用updatelayeredwindow函式,但是updatelayeredwindow不支援onpaint重繪,所以又用到setlayeredwindowattributes,該函式支援onpaint,那麼就可以準備兩個視窗,乙個放背景,乙個放控制項。

異形視窗-仿七彩虹光碟介面程式

七彩虹iGame記憶體效能爆棚,嶄露鋒芒

11 月初,七彩虹發布旗下首款igame記憶體 igame ddr4 8gb3200 傳承了igame家族的高階定製文化,專為玩家打造。初來乍道便嶄露鋒芒,為喜歡享受極速快感且注重品質的遊戲玩家提供了新的品質之選。igame ddr4 8gb程式設計客棧 3200記憶體造型上很硬朗,機械感很強。紅黑...

入手七彩虹低價平板 E708 Q1

我覺得耗電沒有大家說的那麼嚴重,我用著還行。主要是沒 gps 這個比較蛋疼。另外,安卓平板都沒有收音機的嗎?收音機平時悶的時候可以聽啊 不希望好像 iphone 那樣無視 fm 沒充電器的話問題不大,人家就是衝著成本控制低來的,能省就省,況且現在充電器氾濫 起碼我這兒是這樣 多了還嫌不環保了。使用上...

七彩虹的主機板bios看國產硬體廠商的水平

前幾天在二手市場淘了一塊七彩虹b85ak v20的舊主機板,具體配置可以看七彩虹官網的主機板介紹 該bios更新時間是2015 01 29 dos下面是bios的新版本 cb85ak20.011 以及更新指令碼,但是需要進入純dos系統才能安裝。windows下是afu ami firmware u...