スプラッシュウインドウ試行錯誤
以前から不透明度が徐々に上がって表示される、角が丸くてアンチエリアスのかかったスプラッシュウインドウ(という名のバージョン情報ボックス)が作りたいなーと思っていました。たまたまそれに応用できそうな情報(※)を見つけたのでやってみたのですが…
C# IntPtr hwndDesktop = IntPtr.Zero; hwndDesktop = WinAPI.GetDesktopWindow(); Graphics g = Graphics.FromHwnd(hwndDesktop); Image i = global::CrystalStar.Properties.Resources.SprishWindow; g.DrawImage(i,new Rectangle(0,0,i.Width,i.Height)); g.Dispose();
ちゃんと全部のウインドウよりも上に描画されました。ですが、なぜか描画速度が遅いったらありません…。上から下に描画しているのが丸見えです。これじゃあ使えないです。。(ちなみにCPUはCoer2Duoです。CPU使用率はたいして変わっていませんでした。)
デスクトップの現在の状況をビットマップとして取得して、それを背景にして不透明度を上げて表示するっていうんだったら、Micorsoftサポートオンラインのこのトピックで紹介されているビットマップの取得関数を使えばできるけど…。後ろのウインドウをずらしたときに背景が合わなくてかっこ悪いからあんまり使いたくないな~。でも今のところそれくらいしか思いつかないよね。。
※ジョークソフト、NOTEPAD.EXE 2.1のソースコードより。貼り付け(Ctrl+V)を実行するとわかる。終了方法はメニューバーのどっかのコマンドをクリックすると終了します。
コメントはまだありません。