トップページ > 過去ログ > 記事閲覧
WinProcを実装済のゲームにDXライブラリを導入したい
名前:afro 日時: 2009/09/10 18:50

管理人さん、皆さん、こんにちは。お世話になります。 製作途中のネットゲームにDXライブラリを導入したいのですが、 既にネット通信の部分と、キー・マウス入力、グラフィックの描画の機能は途中まで自前で作ってあります。 ネット通信とキー・マウス入力は、ウインドウプロシージャ(WinProc)を実装しています。 まず、グラフィックの描画にDXライブラリを使おうと思い、 これは、SetUserWindowで自前のウインドウをDXライブラリに渡すことでできました。 次に、ゲームにチャット入力の機能を追加しようと思って、 リファレンスページのMakeKeyInputの項を参考にして DrawKeyInputStringで入力中の文字を表示させようとしたのですが、 画面にカーソルのみ表示されるのですが、キーを入力しても何も文字が表示されなくて、(日本語入力をしても同様) エンターキーを押してもカーソルが表示されたままです。 GetKeyInputStringで入力中の内容を取得して、デバッガで覗きましたが 何の入力もされていませんでした。 この現象は、自前のウインドウプロシージャでメッセージを処理しているので キー入力のメッセージがProcessMessageで処理されないためだと考えました。 DXライブラリのソースを少し覗いてみましたが、スマートな解決方法が浮かびませんでした。 WinProcを使用しないで、DXライブラリを使って全てのメッセージを処理すれば解決すると思いますが、できれば避けたいです。 この問題は、DXライブラリの改造なしで解決できるでしょうか。 もしできなければ、どのような改造をしたらいいでしょうか。 よろしくお願いします。

Page: 1 |

Re: WinProcを実装済のゲームにDXライブラリを導入したい ( No.1 )
名前:Will 日時:2009/09/11 09:52

SetHookWinProcという関数で自作のプロシージャをDXライブラリに登録できます。(DxLib_Initの前に実行しましょう) 登録したプロシージャはProcessMessageを実行したときに実行してくれます。 困った時にはDXライブラリのヘッダを一通り読んでみましょう。

Page: 1 |