SSブログ

VC++ Visual Studio 2010:ボタンに画像を透過させることができました (・ω・)ノ [プログラミング]

いつからですか? 誰がそうしたのですか?

ボタンをこんなふうにグラデーションさせたのは(  ̄っ  ̄)ム
おまけに、マウスオーバーするとキレイなマリンブルーに変わってくれて...

Button_before01

―>

Button_before02

おかげで、このバックグラウンドを活かしながら画像を載せようと(透過)することに、どれだけ試行錯誤し、調べたことかっ!

...はっきりいって疲れました orz

しかし、やっと透過ボタンを作成することができたので 思いっきりシェアします。

この方法がベストがどうかは分かりませんが、透過ボタンで苦労しているアナタの助けになれば幸いです。
(・ω・)ノ


Sponsored Link

今回わたしが作成したのは、いたってシンプルなものです。

ダイアログに数個のボタンを並べて、コンテンツイメージが表示されたボタンを押すとそれに沿った処理を起動するというもの。

  1. ボタンのプロパティ設定
    リソースビューから対象のダイアログを開き、プロパティのプロパティを以下のように設定
    表示-Bitmap:True
    また、例として以下の内容で作業します。
    その他-ID:IDC_BUTTON1
    表示-Caption:Button1
  2. イベント(=関数)の追加
    プロパティの管理イベントを以下の様に設定
    BN_CLICKED:OnBnClickedButton1
  3. 変数の追加
    ボタンを右クリックし、変数の追加を選択(メンバー変数の追加ウィザード)より

    メンバー変数の追加

 

>ここまでが環境設定。


■リソースの準備

ボタンに透過するための画像(.PNG)ファイルを用意します。

当初 私は、BMPファイルで試行錯誤(手元に初級者向けの本しかなかったこともあり、ネットで検索、サンプル or アレンジ の繰り返し)していたのですが まったくうまく行かず、また、それらしい示唆があっても私のスキルでは難しくて...
(ο´・ д・)??

しかし、やり方次第では BMP ファイルでもできるのかもしれません。
その辺りは、手練れのプログラマーさんにお願いしたいと思いマス (^^;;;;


検索ワードは知れているのですが、とにかくネットで “VC++ ボタン 透過” とか “VC++ ボタン 画像透過” などで調べた結果、やっとたどり着いたのがこのページでした。

透過(アルファ)ボタンMFCライブラリの詳細情報 : Vector ソフトを探す!

(あと ココも参考になると思いマス Program Tips - 物置本館

このライブラリを DL し、圧縮ファイルを解凍すると AlphaSample というフォルダが作られます。

さらにその配下の 同じく AlphaSample にある プロジェクトファイル AlphaSample.sln をダブルクリックして Visual Studio を起動、ビルド すると OKとなりますが...

AlphaSample (root)
  +-AlphaSample
      +-AlphaSample.sln

実行すると

ボタン画像の読み込み失敗

で終了します ( ̄◇ ̄;)エッ ...

どうやら アクアボタン用 の pngファイル が無いらしい。

で、
AlphaSample (root)
  +-AlphaSample
      +-AlphaSample
          +-AlphaSample.cpp
の、

BOOL CAlphaSampleDlg::OnInitDialog()
にある
if( FALSE == m_cBtn4.LoadBitmap(...
の if ブロック を コメントアウトして下さい。

AlphaButton_Sample

こんな画面が出現します (・ω・)ノ

 

前置きが長いデスね ( ノ゚Д゚)
では、ボタンに画像を透過させる方法の答えを



AlphaSample (root)
  +-AlphaSample
      +-AlphaSample
          +-AlphaSample.cpp
の、

BOOL CAlphaButton::LoadBitmap(UINT nIDResource,LPCTSTR pResourceType)

が、その答えです。


とりあえず、ここでブログにアップしておきます。

たぶん、ここにたどり着いたアナタは、上記のコトだけで理解できてしまうのではないかと思いマスが、あとでまた 続きを書きますね。
(^ω^)ノ



Sponsored Link

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:[必須]
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

トラックバックの受付は締め切りました

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。