• ベストアンサー

Win32 APIを使ったWindowsプログラミング製作について質問です

只今、VisualStudio2005のVC++でWin32 APIを使ってWindowsアプリケーション製作の練習をしています。今、ドラゴンクエストIのようなゲームを作りたいと思っており、画面に画像を表示し、キーボードの十字キーで操作できるようにしていますが、ここまでやっていて一つ不思議に思ったことがあります。それは、画像の読み込みや表示・キーボードの入力などすべてをウィンドウプロシージャ内にコーディングしています。WinMain()関数内には、ウィンドウの登録・生成・表示という当たり前の処理しかありません。これから、戦闘の処理なども加えていきますが、それを考えてもWM_PAINTやWM_KEYDOWNなどのメッセージ内で事足りるような気がします。アプリの製作の経験はほとんどない初心者なので、C言語みたいにMain()関数内にほとんど処理を記述しないのが不安に思います。自分の書き方は間違っているのかどうなのか、何か参考になる意見をいただけないでしょうか?どうかよろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • ecogilis
  • ベストアンサー率60% (12/20)
回答No.1

こんにちわ。 間違ってないです。そんなもんです。 というよりも、そういう設計のAPIですから、GUIを持つプログラムは大抵そうなります。 ただ、ウインドウプロシージャなどをライブラリに隠蔽して見えなくするということも設計次第では出来るので、そういったプログラムと比較すると、ぱっと見では、あなたのプログラムとはつくりが大分違うように見えたりするかもしれません。 でも本質的には、イベント毎に処理を行うという意味では一緒で、ソースを追えば似たようなもんだと分かると思います。そして、やっぱりmainも小さくなる傾向にあると思います。 ただ、、、そうではないやり方も出来るみたいです。例えば、メッセージループの中に記述を埋め込むとかです。(何かの本で見ました) その場合には、main関数にも記述が増えてくると思います。

dfjews
質問者

お礼

おぉ、そう言っていただけると不安が解消されます。 Win32 APIのようなプログラムは大抵そうなるのですね。 いやー、おかげで自信がつきました。これで心おきなくアプリ製作に集中できます。 ありがとうございました!

その他の回答 (1)

回答No.2

それでいいんですが、プログラムが長くなってすごく理解不可能になってませんか? 処理をひとまとめにして、関数化したり クラス化してオブジェクトとしてみたり プログラムが大きくなったときに理解しやすくなるようなさまざまな技術があります

dfjews
質問者

お礼

なるほど!関数化するというのはいいですね。なにぶん初級者なもので、気づけませんでした…。これは参考になりました。ありがとうございます。

関連するQ&A

専門家に質問してみよう