さて、とりあえず実際に"ワンドロ開発"をやる・・・前に
サポート用のアプリケーションを作ってしまおう。
機能は簡単で、且つ手間をかけずに・・・
ところでスプラッシュウィンドウ作ったこと無かったね。
とか思いついてしまったので実装してみる。
スプラッシュウィンドウとは?
一言で言うと「起動直後に出てくる小さいロゴっぽいやつ」。
何やってるでもないんだけど、なんかあると気分が上がる。
本来の目的を一応述べておくと
「起動から操作可能になるまで時間がかかる場合に起動してること、起動シーケンスが走ってることを示す」のが目的。
今回の目的だと起動してからUI出るまで1秒かからないので本来必要なかったり。
でもやってみたいからやってみるっていうアグレッシヴさは大事だと思います。
実装に向けた調査結果
実装のために色々調べてみたところ、基本的な実装方針は以下の通り。
- 適当なフォーム作る
- プログラムのエントリーポイントからスプラッシュウィンドウを呼び出す。
うん。シンプル。
まずそれっぽいフォームをVisualStudioで作る。
で、それっぽいフォームがそれっぽい所以はこちら
フォームの枠が無い
画面の真ん中に表示される
- 中央にロゴっぽい漢字が出る。(ちなみに「くぐい」と読みます。白鳥のこと。古い呼び方なんだそうな。)
フリーフォントの衡山毛筆フォント/武蔵システム様をお借りしました。
で、一定時間経ったら消す仕様にしたかったんですが
そういえばプログレスバー使ったことないね。
って思ったので以下略
今回はwindows.FormsのTimerとかデリゲート使って色々やってます、が、本筋から思いっきり外れるので割愛。
で、見事(無駄に長い時間)表示されるスプラッシュウィンドウが出来ました。
後はエントリーポイントに仕込むだけですね。
・・・の一文だけで済ますのもアレなので説明。
そのうちエントリーポイントの確認方法とか記事書いた方がいいかも?
エントリーポイントに仕込むのは簡単で
フォームをNewしてRunの前にドーン!でOK。
(本来はほかの処理を裏でやってたりするのでモーダル表示じゃなくていいんだけど、今回はモーダルにして無理やり同期させてます。)
Application.EnableVisualStyles()とかApplication.SetCompatibleTextRenderingDefault()の前に仕込むと怒られます。
ここで描画の設定してんのね。
結果、起動後に見事スプラッシュ画面が(長々と)表示されるようになりましたとさ。
ちなみに、あまりに表示が長くてめんどくさかったのでGitHubに上げたソースだとここコメントアウトしてます。
作ってるときは楽しかったんだけどなぁ・・・
18/06/04 追記
編集リクエストありがとうございます!