トップページ > 過去ログ > 記事閲覧
C#でのDirectInputの使用について
名前:トム 日時: 2012/08/07 04:14

お世話になっております。 VisualC#用(Ver3.08c)で、メインウインドウ以外を指定した場合 DxLib_Init の前に SetUseDirectInputFlag(FALSE); を実行してDirectInput を使用しないようにする必要があります。 DxLib_Initの後、 メインウインドウを指定してDirectInputを初期化する別関数を用意するなどで DirectInputを使用可能にする事はできないのでしょうか?

Page: 1 |

Re: C#でのDirectInputの使用について ( No.1 )
名前:トム 日時:2012/08/08 21:06

↑↑↑ 補足します。 DX.SetUserWindow()関数の引数に、メインウィンドウ以外のハンドルを指定した場合のことです。
Re: C#でのDirectInputの使用について ( No.2 )
名前:管理人 日時:2012/08/12 08:16

いくつかご質問させていください 1.私の環境では SetUserWindow に自前で用意したウインドウのハンドルを設定した状態でも  パッドの GetJoypadInputState で入力を取得することができました  よろしければトムさんが現象を確認した際のプログラムや使用されているOSなどを  教えて頂けないでしょうか? 2.現在 DxLib_Init の後で SetUserWindow を実行してメインウインドウを変更することはできません  > DxLib_Initの後、  > メインウインドウを指定してDirectInputを初期化する別関数を用意するなどで  > DirectInputを使用可能にする事はできないのでしょうか?  よろしければこちらをされたい理由を教えて頂けないでしょうか?
Re: C#でのDirectInputの使用について ( No.3 )
名前:トム 日時:2012/08/12 18:00

>管理人さん、 いつも世話になっています。 >@プログラムや使用されているOSなどを > 教えて頂けないでしょうか? OSは、Windows7の64bit版です。 以下が初期化部分のプログラムです。 public partial class Form1 : Form { private const bool CoBoolPictureBox = true; // true:picturBox1に描画, false:Form1に描画 public Form1() { InitializeComponent(); // DXライブラリーの初期化 { if (CoBoolPictureBox) { DX.SetUserWindow(pictureBox1.Handle); // DirextInputを禁止にする // DX.SetUseDirectInputFlag(DX.FALSE); // DirectInputを禁止にしないとエラーになる } else { DX.SetUserWindow(this.Handle); } DX.DxLib_Init(); DX.SetDrawScreen(DX.DX_SCREEN_BACK); } } >Aよろしければこちらをされたい理由を教えて頂けないでしょうか? pictureBoxにDXライブラリで描画する際にジョイパッドの入力関数を使用したい。 それが実現できる方法があれば教えてください。
Re: C#でのDirectInputの使用について ( No.4 )
名前:管理人 日時:2012/08/13 03:52

pictureBox は子ウインドウなんですね( すみません、C#の知識が殆ど無くて・・・ ) DirectInput に渡すウインドウハンドルは親ウインドウである必要があるので子ウインドウである pictureBox のウインドウハンドルを SetUserWindow に設定するとエラーが発生するのだと思います 親ウインドウを設定する SetUserWindow の他に描画の出力先とする子ウインドウを指定するための関数 SetUserChildWindow を追加しましたので、よろしければお使いください http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip 追加した関数はこちらです // DXライブラリで使用する表示用の子ウインドウのハンドルをセットする(DxLib_Init を実行する以前でのみ有効) int SetUserChildWindow( HWND WindowHandle ) ; SetUserWindow には必ず this.Handle を渡して、pictureBox のハンドルを SetUserChildWindow に渡して呼ぶようにしてみてください
Re: C#でのDirectInputの使用について ( No.5 )
名前:トム(解決) 日時:2012/08/17 22:53

>SetUserChildWindow を追加しましたので、よろしければお使いください こちらの要望通り動作しています。 対応どうもありがとうございました。

Page: 1 |