独自スタイルのボタンを作りたい

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

独自スタイルのボタンを作りたい

#1

投稿記事 by street » 7年前

例えば、
ゲームソフトなんかの格好いいボタンを見ると、いつも感心してしまいます。
ところがVBやVCで作れるオリジナル様式のボタンのデザインは単調し過ぎます。
普通のwindow XP またはvista のアプリケーションに独自デザインのボタンを作りたい場合は
どうすればいいのでしょうか。
例えば、ボタンを押す前後のボタン外観画像をbitmapの形で提供することで、
ボタンの上に表示する文字をプログラムの中で自由に与える形実現可能でしょうか。

勿論そのボタンを押したら指定のイベントを発生する機能を持たなければなりません。

ご教授宜しくお願いします。

YuO
記事: 941
登録日時: 9年前
住所: 東京都世田谷区

Re: 独自スタイルのボタンを作りたい

#2

投稿記事 by YuO » 7年前

単純な方法としては,BS_BITMAPを付けて作ったボタンにBM_SETIMAGEを送ることで,ボタンに画像を表示できます。

もっと制御を細かくしたいならば,WPF (C# or VB) を使うか,独自に描画するかになります。
WPFはControlTemplateを使うことで描画について細かく制御できます。
エンジンが内部で描画したり,クリックの制御なども行ってくれています。
独自に描画というのはこれと同じことで,描画とイベント制御を自分で行うことになります。
市販のソフトウェアゲームのボタンは,ほぼ独自描画であると思います。

updated (2012-10-19T09:55+09:00) ソフトウェア→ゲーム

ホヅミ
記事: 110
登録日時: 9年前

Re: 独自スタイルのボタンを作りたい

#3

投稿記事 by ホヅミ » 7年前

DXライブラリで作ったもので申し訳ございませんが、以前私が作ったボタンクラスを参考までに上げておきます。

ボタンの(私の中での)作り方なのですが、
マウスのボタン状況
1:ボタンから離れている
2:ボタンの上に乗ってる
3:ボタン押した
4:ボタンを放した
の4つを取得し、それぞれの状況に応じたボタン画像を用意します。

ボタンの画像サイズと座標を設定し、
・マウス座標がボタンの範囲内にないときは1の画像を
・マウス座標がボタンの範囲内に入った時には2の画像を
・ボタンを押したときは3の画像を
・ボタンを放したときは4の画像
これらを表示させるようにします。

私のプログラムではボタンを押した時の状況をStateという形で返し、それに応じた処理を行うようにしています。
ボタンを(100,100)に表示しボタンを押したらボタンを使えないようにする。
というプログラムです。
StateはFREE,WAIT,PUSH,PULLといった形で返しております。
添付ファイル
BtnClass.zip
ボタンクラス
(4.24 KiB) ダウンロード数: 42 回

street

Re: 独自スタイルのボタンを作りたい

#4

投稿記事 by street » 7年前

皆さん丁寧なご教授本当にありごとうございました。
ソースコードまで頂き感謝の気持ちいっぱいです。
是非参考にさせていただきます!

閉鎖

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