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