1

切り抜き穴や全体的な透明度ではなく、ウィンドウを透明にする方法を考えています。

まあ、バラか何かの PNG 画像を平手打ちしたいと言って、後ろのものとうまくブレンドし、後ろのものを再描画して、画像/ウィンドウの透明な部分を通してそれらの変更を輝かせます。

wxWidgets や OpenGL などを使用できます (または使用したいと考えています)。しかし、Qt や GTK ではありません。

4

4 に答える 4

1

wxW を使用して、画面に透明な画像を表示するのは実際には非常に簡単であることがわかりました。

wxScreenDC dc;

wxBitmap bmp(wxT("test.png"), wxBITMAP_TYPE_PNG);
dc.DrawBitmap(bmp, 250, 100, true);

ここで、更新などを処理する方法を見つけなければなりません。何かが更新されたときに、(部分的に再描画される可能性があります) する必要があります。

現時点では、それ自体の上に再描画されるだけで、しばらくすると完全に不透明になります。

ウィンドウを引数としてとる wxScreenDC::DrawBitmap の別のバージョンがありました。

于 2009-06-15T01:44:15.000 に答える
1

形のあるフレームを使ってみませんか?

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\samples\shape* を参照してください。

于 2010-01-14T04:17:08.187 に答える
0

wxTopLevelWindow::SetTransparentを参照してください。

プラットフォームがサポートしている場合、ウィンドウは半透明に設定されます。

wxWidgets でできると思います。

于 2009-06-14T21:26:38.207 に答える
0

C++ 以外のことをしたい場合は、JavaFxやAdob​​e AIRなどの他のクロスプラットフォーム オプションがあるかもしれません。

于 2009-06-14T21:35:21.227 に答える