たこやき部屋スマートフォン用の表示で見るたこやき部屋SteamVRを使って、Unityでゲームを開発したいこの広告は、90日以上更新していないブログに表示しています。プログラミング普段はUnityでVRゲームを作って遊んでるんですが、たまにはWindowsアプリを作りたくなったので、自分の好きな画像を背景にできる時計でも作ってみようと思います。画像はアルファ値が使えるpngを使いたいので、普段あまり使っていないGDI+を使って試してみます。GDI+の初期化と終了が以下のような形で、この辺の処理を変える事は滅多にないです。GDI+終わりGdiplusShutdown(gdiToken);画像ファイルを読み込ます時は、Bitmapクラスのコンストラクタで画像ファイルを指定したら良いのですが、なんと!全角文字のファイル名の時ちゃんと動きませんでした。(自分の環境の場合)仕方なくUnicodeでソースを書き直し。Unicodeを使う時はchar型をT_CHAR型にして、使う関数はT_CHAR型が使えるものにします。文字列を指定したい時は「TEXT("文字列")」のようにしてあげます。動かしたアプリのファイル名を使って、iniファイル名にする時はこんな風になります。TEXT(".ini"));}さてさて、GDI+を使って画像を描画する処理は、ちょっと長いですが以下のコードを書きました。angle);}Windowプロシージャ側、WM_TIMERの中に入れています。DeleteBitmap(hBmp);}Windowへの描画は「UpdateLayeredWindow」が引き受けてくれるわけですが、こいつを使うにはWindowのスタイルに「WS_EX_LAYERED」を指定する必要があるので「CreateWindowEx」でWindowを作る時に指定しましょう。NULL);これで基本的な所は終わり。他の部分は通常のWindowsAPIを使ったアプリと同じです。出来上がった時計はこうなりました。初回起動直後、デフォルトのpng画像を読み込んでます。こんな画像を用意してWindowにドロップ!微妙に見にくいですが、ちゃんと時計を表示しています。他の画像をドロップで画像が切り替わります。時計としては最低限の機能しか持っていないため、後々いろんな機能を追加していきたいです。画像はpng、jpg、gifとか使えるみたいですが、Windowsまかせなので何が読み込めるかよく分からんです。わからないことになったらタスクマネージャでImgClock.exeを終了させ、iniファイルを消してください。Ver2.2.1の記事です。空港~オーチャード(1/4)VR空間に線を描いたり、消したり月別アーカイブ参加グループプログラミングUnityはてなブログをはじめよう!takoyakiroomさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。