關於透明視窗的顯示

來源:互聯網
上載者:User

第1種

視窗半透明效果

//----------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  long lRt=GetWindowLong(Handle,GWL_EXSTYLE);
  lRt=lRt|WS_EX_LAYERED;
  SetWindowLong(Handle,GWL_EXSTYLE,lRt);
  SetLayeredWindowAttributes(Handle,clBlue,200,LWA_ALPHA);
}
//-----------------------------------------------------------------

第2種

早就想寫一篇我這方面的心得, 一直特忙沒有空, 不過這次點名找我, 就不好再縮頭縮腦了.

其實我也還有很多問題沒有解決, 在這裡也向高手請教.

此篇在V-Galaxy BBS發表, 如要轉貼請和作者聯絡info@ministars.com

1. Windows 2000 的GDI+擴充集

Windows 2000內部擴充了原有的GDI指令集, 將直接提供高效的影像處理指令如Alpha Blending等. 在Win2000裡有一個專門的視窗風格WS_EX_LAYERED提供透明視窗的可能. Win2000還提供如 AnimateWindow(...)一類的API, 直接支援視窗動畫.

有關串連

http://www.microsoft.com/hwdev/video/GDInext.htm

http://x.wonder.ca/stevex/nthack/

2. Win95/NT下的實現方法

既然Windows不提供現成的, 就只好自己做了. 原則上是這麼過程:

a. 擷取案頭的DC,產生一個相容的Bitmap,送一個WM_PAINT訊息,把案頭取到Bitmap裡.(就像一個Screen Capture)

b. 把自己要開的視窗畫到另一幅Bitmap

c. 用這兩幅圖片做Alpha Blending, 或者其他效果, 產生第三幅圖.

d. 最後再把圖片BitBlt出來

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.