押しボタンについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
夏天

押しボタンについて

#1

投稿記事 by 夏天 » 18年前

自分の質問は本当は直接DXライブラリを配布しているHPの掲示板にするべきものだと思いますが
ここのほうが質問しやすいのでまたまた来ました

DXライブラリを使ってグラフィックボタンを作りたいのですが
イマイチ作り方がわかりません
どうやって作るのか教えてください
ちなみに作っているのは○×問題です

バグ

Re:押しボタンについて

#2

投稿記事 by バグ » 18年前

あらかじめ画像を作っておいて、LoadGraph関数とDrawGraph関数を使用して表示するやり方が1つ。

もう1つは、DrawLine、DrawBox、DrawCircle等の図形描画関数を使用して毎回書き替えるやり方でしょうか…

GetMouseInput関数でマウスの状態を調べ、クリックされた場合にGetMousePoint関数でマウスカーソルの位置を取得し、ボタンの範囲内にカーソルがあった場合、ボタンが押されたと判定する…とこんな感じで如何でしょうか?

管理人

Re:押しボタンについて

#3

投稿記事 by 管理人 » 18年前

・ボタンを押す処理が必要なのか
・今押したという瞬間の処理が必要なのか
・オンマウスの判定が必要なのか

今どの部分でつまっていらっしゃいますか?

特定の領域にボタンを表示させたら、例えば四角形を表示する関数
DrawBox(100,100,200,200,(略));
でボタンを作ったら、マウスがその領域(100,100)~(200,200)までの間にいるときボタンを押せば
プッシュ処理とすればいいでしょう。

「今押した」という処理は、前回の入力状態が0で、今回の入力状態が1の時のみ処理をすれば、
今の瞬間押した時のみ処理が出来ます。

画像でボタンを作るのなら指定座標+画像サイズで領域を判定すればいいでしょう。

夏天

Re:押しボタンについて

#4

投稿記事 by 夏天 » 18年前

自分が今詰まっているところは
・問題を表示(ここは画像関係ないですね・・・;)
・ボタン表示
・ボタンをオンマウスで画像を変更←この辺です
・クリックしたら回答が出てくる
・次の問題へ

こんな感じです
領域で処理・・・難しそうです
ムムム・・・面妖な・・・
上の方法でオンマウス状態のときに画像を変えるって言うのもできるんですか?

バグ

Re:押しボタンについて

#5

投稿記事 by バグ » 18年前

常にマウスカーソルの座標を取得しておいて、ボタンの座標と比較して、マウスカーソルがボタンの上にあればグラフィックを描き変えればいいのではないでしょうか?

管理人

Re:押しボタンについて

#6

投稿記事 by 管理人 » 18年前

DXライブラリは始めたばかりですか?
それらは結構簡単ですよ^^
四角形を(100,100)の座標に50x50の大きさで書きましょう。と
言われたらかけますか?

マウスの今の座標を取得する関数がありますから、
http://homepage2.nifty.com/natupaji/DxL ... .html#R5N6
それを使えば今のマウスの座標がわかります。
例えばマウスの座標を
int x,y;
とすると、上記で書いた四角形にあるかどうかを判定するには
if(100<x && x<=150  &&  100<y && y<=150){//x座標が100~150で、かつ、y座標が100~150
    /*処理*/
}
 
 
で判定させればいいことがわかります。
このイフ文にマッチする時には画像2を表示させ、それ以外の時は画像1を表示させればオンマウスで画像の変更が可能です。

どこかわからないですか?

夏天

Re:押しボタンについて

#7

投稿記事 by 夏天 » 18年前

本当に簡単にできました
こんな簡単にできるなんて思いもしませんでした
自分は難しく考えすぎていたようです
丁寧に教えていただきありがとうございました!!

管理人

Re:押しボタンについて

#8

投稿記事 by 管理人 » 18年前

解決してよかったですね☆

閉鎖

“C言語何でも質問掲示板” へ戻る