我想知道如何使一個窗口透明,而不是鏤空孔或總體相同的透明度。C++中的跨平臺透明窗口?
嗯,只是說我想拍一朵玫瑰的PNG圖像或者什麼東西,並將它與背後的東西很好地融合在一起,並允許後面的東西重繪,並通過圖片/窗口的透明部分進行變化。
我可以(或希望)使用類似的wxWidgets或OpenGL。但不是Qt或GTK。
我想知道如何使一個窗口透明,而不是鏤空孔或總體相同的透明度。C++中的跨平臺透明窗口?
嗯,只是說我想拍一朵玫瑰的PNG圖像或者什麼東西,並將它與背後的東西很好地融合在一起,並允許後面的東西重繪,並通過圖片/窗口的透明部分進行變化。
我可以(或希望)使用類似的wxWidgets或OpenGL。但不是Qt或GTK。
我發現,它實際上是非常簡單的使用扔在屏幕上的透明圖片WXW:
wxScreenDC dc;
wxBitmap bmp(wxT("test.png"), wxBITMAP_TYPE_PNG);
dc.DrawBitmap(bmp, 250, 100, true);
現在我必須找出如何處理更新和這樣的,它必須是(也許部分重繪)當更新下面有東西時。
因爲它是現在它只是重繪自己ontop的本身,使其成爲一個同時充分opacue。
有wxScreenDC :: DrawBitmap的另一個版本,把窗口作爲參數,也許是一個解決這個?
如何使用成形框架?
wxBitmap m_bmp = wxBitmap(_T("redroseonwhite.png"), wxBITMAP_TYPE_PNG);
SetSize(wxSize(m_bmp.GetWidth(), m_bmp.GetHeight()));
wxRegion region(m_bmp, *wxWHITE);
bool m_hasShape = SetShape(region);
查找*的wxWidgets-2.9.0 \樣品\形*爲完整的例子。
我知道這個函數,它將整個窗口設置爲相同的透明度。不是我的意思。 我想要一些像素完全透明,其他一些完全不透明,而其他許多像素在兩者之間。 像從網上隨機此照片(搜索「redrose.png」在谷歌): http://www.uniqueboutiquedallas.com/images/redrose.png 它的邊緣是透明的,使得它融合在一起,無論落後了。 看看http://www.rainlendar.net/cms/components/com_rny_gallery/simpleviewer/images/Skins-Win.png,你會發現窗戶在某些部分是透明的。 – Frank 2009-06-14 21:40:48