トップページ > 過去ログ > 記事閲覧
C#でのウインドウの操作
名前:なみだ水 日時: 2008/05/26 22:07

はじめまして。 なみだ水と言います。 早速ですが本題に。 現在C#でDXライブラリを作っているのですが、 if (DX.DxLib_Init() == -1) return -1; とすると、独自のフォーム(?)が作られると思うのですが、このフォームを最小化するにはどうすればよいのでしょうか? DX.SetWindowText("タイトル"); のようなプログラムを書くとタイトルバーが変更されるので、なにかそのようなメソッドがあるのでしょうか?

Page: 1 |

Re: C#でのウインドウの操作 ( No.1 )
名前:aujourd'hui 日時:2008/05/27 11:29

こんにちは。 フォームを最小化するだけならば、右上の最小化ボタンを押せばよいような気もしますが。 フォームのサイズを変更するだけならば、 ウインドウのサイズを変更可能にする DX.SetWindowSizeChangeEnableFlag(int Flag); 画面の解像度とカラービット数を変える DX.SetGraphMode(int ScreenSizeX,int ScreenSizeY,int ColorBitDepth); ウインドウサイズと描画画面の大きさの比率を設定 DX.SetWindowSizeExtendRate(double ExRate); これらのメソッドは、if(DX.DxLib_Init()==-1)return -1;の前に記述したほうが良いかと思います。
Re: C#でのウインドウの操作 ( No.2 )
名前:なみだ水 日時:2008/05/27 16:30

aujourd'huiさんありがとうございます。 最小化と言うか、ウインドウが最小化されたりしたのも判断したり、最大化されたのを判断(もしくは最大化する)したりしたかったのです……。 情報が不足していました。すみません。
Re: C#でのウインドウの操作 ( No.3 )
名前:aujourd'hui 日時:2008/05/27 18:48

最小化や最大化されたのを判断するメソッドは、C/C++版ライブラリにはそれらしい関数がありますが、引数に関数ポインタとvoid型ポインタをとっている様で、C#版ライブラリでは、コールバック関数やvoid型ポインタを引数にとるメソッドは、使用出来なくなっている為、おそらく、C#版ライブラリにはないと思われます。
Re: C#でのウインドウの操作 ( No.4 )
名前:なみだ水 日時:2008/05/27 21:53

ありがとうございます。 ないのですか……。 残念です。 必ず無くてはならないと言う物でもないので、このままゲーム制作を続けようと思います。
Re: C#でのウインドウの操作 ( No.5 )
名前:管理人 日時:2008/06/01 21:56

最大化についてはフルスクリーンモードにするくらいしか出来ませんが それで良ければ現在最小化されているのか、最大化されているのか、 通常のウインドウモードなのかを取得するようにすることはできると思います。 というか、具体的な用途はなんでしょうか? 誤解があるとやっぱりできません、ということもありそうなので もし不都合が無ければ教えてください。
Re: C#でのウインドウの操作 ( No.6 )
名前:なみだ水 日時:2008/06/03 15:58

管理人さんありがとうございます。 具体的な用途ですが、最小化されたら音を停止(BGMなど)したいのです。 他の方法でできちゃったりしたらすみません。 以下全く今回の件とは関係のない話ですが、スレを立てるのもあれなのでついでに書かせてもらいます。 C#版のバグ?かどうかわかりませんが、 PlayMusicの引数がループ再生しようとすると、3を指定しないといけないのは仕様なのでしょうか? 0: ノーマル再生 1: バックグラウンド再生 2: ループ再生 と勝手に思っていたのですが……。 仕様でしたらすみません。
Re: C#でのウインドウの操作 ( No.7 )
名前:Will 日時:2008/06/03 18:33

C#は専門外ですがリファレンスには PlayType  : 再生形式          DX_PLAYTYPE_NORMAL : ノーマル再生          DX_PLAYTYPE_BACK  : バックグラウンド再生          DX_PLAYTYPE_LOOP  : ループ再生 と書かれており、C/C++だと直値を使用するのではなくDX_PLAYTYPE_LOOPと指定することで どんな値であるかを意識しないようになっているのですが C#ってそういうのはダメなんでしょうか? > PlayMusicの引数がループ再生しようとすると、3を指定しないといけないのは仕様なのでしょうか? 内部的にビットで管理していて、ループ再生はバックグラウンドでないといけないので 00000001:バックグラウンド 00000010:ループ を合わせて 00000011 = 3 となっているのではないでしょうか。
Re: C#でのウインドウの操作 ( No.8 )
名前:なみだ水 日時:2008/06/03 19:19

Willさんお返事ありがとうございます。 DX_PLAYTYPE_LOOPと言うのがきちんとありました。 すみません。 そして詳しい解説ありがとうございます。 今まで全部直接値を入れてました……。 これであってるかなあとか試行錯誤しながらやっていたと言うおおぼけかましてました。 本当にありがとうございました。

Page: 1 |