| ■ 概略説明 |
八角形のボタンを表示するクラスです。![]() 八角形にアレンジしたボタンを表示するクラスです。また表示色も変更することができます。
このバージョンは、色の指定方法を変更しました。以前のバージョンはボタンのフェースだけでなく、ハイライトや影の色も指定しなくてはならなかったのですが、このバージョンでは表面色から他の色を割合で求めるように変更しました。 |
| ■ プログラムの説明 |
| COctButtonは、CButtonのオーナー描画のための継承クラスです。 ポイントとしては、ボタンの形状に合わせた、マウスの領域指定とボタンの描画です。 マウスの領域指定には、CRgnのリージョンクラスを用いています。 リージョンの指定は、まずボタンの最も外側の9点(最初と最後の点は同じ)を決め CreatePolygonRgn( )関数でリージョンを作成します。 そして、SetWindowRgn( )関数でそのリージョンを登録します。 描画処理は、比較的簡単で上記の9点を使って八角形を描画し、中央にテキストを書いているだけです。 これらを応用すれば、いろいろな形のボタンを作れるでしょう。 COctButtonの使い方は簡単です。 (1) まず、貴方のダイアログを持つプロジェクトにOctButton.cppとOctButton.hを挿入して下さい。 (2) そして、ダイアログエディターで適当にボタンを作成して下さい。この時、ボタンの大きさは大体正方形になる様にして下さい。表示サイズは縦横短い方の辺に自動的に合わせられます。既製の[OK]ボタンや[キャンセル]ボタンを変形させてもOKです。 (3) 次にこのダイアログのインプリメンテーションファイル内で、上記のボタンからタイプがコントロールの変数を作成します。基本となるクラスはCOctButtonにして下さい。これで八角形のボタンが表示されるはずです。 (4) また、ボタンの色を変更したい場合は、OnInitDialog内でCOctButton::SetColors()をコールして下さい。 例: m_cBtn.SetColors( RGB( 255, 255, 255), RGB( 0, 0, 255)); // COctButtonの変数です。 最初のパラメータはボタンのテキスト色、2番目は表面色です。 色の変更をしない場合は、通常のボタンと同じ色になります。 |
| ■ ファイルのダウンロード |