まずはWindowsアプリケーションを作成します 新規プロジェクトの作成、から「Windowsデスクトップアプリケーション」を選択してください うお・・これはちょっと・・いきなりハードすぎやしませんか・・全てを理解しようとすればキツいですが、今は全部理解する必要はありません実はこれ、自動でWindowsアプリを作ってくれているんですちなみに何もいじっていないこのプログラムを動かしてみると・・ え?・・あ、ほんとだ・・出来てるそうです要は、このプログラムのどこをいじれば思い通りの事が出来るか、です 覚えなくても大丈夫ですが一応、プログラムの概要です上のほうにintAPIENTRYwWinMain()というC言語でいうMain()関数に当たるものがあります この中でまずATOMMyRegisterClass()関数が呼び出されWindowの形状などが決められています(形状などを変更したいときはここ)次にBOOLInitInstance()関数が呼ばれ初期化がされます(Windowが表示される前にやりたいことがあればここ)そしてwhile(GetMessage())でWindowが消滅するまでWindowの信号を受信しています受信した信号を処理するのがLRESURTCALLBACKWndProc()関数です(今回はこの関数の中で処理をします)その下にあるINT_PTRCALLBACKAbout()はバージョン情報を表示したりする関数です あの・・もう大丈夫です、お腹一杯です・・これは、どこをいじるのかの前置きなので本当に覚えなくて良いですそのうち自然に理解できると思いますでは、実際にこのプログラムをいじっていきます この関数内ではこのWindowに飛んできた信号(ウィンドウメッセージ)を受信して、その処理を行っていますWM_COMMANDでは、Windowのメニューバーが選択された時「ヘルプ」でバージョン情報表示などの処理を行っていますWM_PAINTは、Windowを再描画する必要がある時に呼ばれますWM_DESTROYは、Windowが無くなる時、終了処理です今回はマウスクリックによる入力と判定なのでWM_LBUTTONDOWN(マウスの左ボタンが、下がった時)というメッセージを新たに拾う処理を作ります ここがいいかなWM_PAINTとWM_DESTROYの間に上のように作ってみてくださいそして次に、クリックされた場所(座標)を拾います この3行を足してみて下さいまず、POINTはクリックされた座標を格納するためのWindowsAPIの構造体です変数群、とでも考えてもらえればOKですGetCursorPos()は、現在のマウスカーソルの位置をPOINT構造体に格納するWindowsAPI関数ですScreenToClient()は、絶対座標(TV画面の座標)からWindowの座標に変換するこちらもWindowsAPI関数ですWindowsAPIには様々な関数や構造体、メッセージなどが存在しますがこうした便利な関数が使えるとだけ理解すれば大丈夫です使いたい時に、使いたいAPIを覚えればいいのです さて、最後です下の3行を追加してくださいwchar_tは後のMessageBox関数で使用するために合わせたchar型と思って下さい次のswprintf_s()ではクリックされた座標が格納されたPOINT構造体ptのX座標pt.x Y座標pt.yを文字列に変換していますそして、その文字列をMessageBox関数で表示させていますMB_OKでOKボタンを持っているメッセージボックスと指定しています実行結果 おお!!!ついにWindowsアプリが出来た!!お疲れ様でした今章は急にプログラミングのハードルが上がったので大変だったと思いますでもあなたはこれで、Windowの中のどこかがクリックされた時の反応を返せるようになりましたクリックされた方向へキャラクターを動かしたりと無限の可能性が広がっていくと思います ● おまけ ● VisualStudioの一番右の方に「リソースビュー」というものがあると思いますこちらのDialogを選択して開くとWindowで「ヘルプ」を押した時に表示されるバージョン情報をいじくることができます あなたが作ったプログラムです著作権表記などしてみてはいかがでしょう次章は「ビットマップの表示」です徐々にプログラミングは複雑となっていきますがRPGゲームの仕組みは分かっているので勇み足でいきましょう!