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...