我想知道如何使一个窗口透明,而不是镂空孔或总体相同的透明度。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