トップ回答者
VC++で角丸ボタンを配置する方法について

質問
-
ご教授をお願い致します。
Windows Mobile 6 上で動作するwin32アプリを VC++ で作っています。
【やりたいこと】
Dialog上に角丸のボタンを配置したい
→ボタンの形状を透過画像(拡張子は問わない)で実現したい
【知識レベル】
bitmapの自作ボタンを配置する方法は認識している
【試行錯誤の一例】
bitmapの角を下地(Dialog)と同じ色に設定し、擬似的に丸く見せる
→下地(Dialog)の色分だけボタンが必要となるため、この方法は回避したい
[Target]
Windows Mobile 6.1 Professional[Development environment]
Windows XP[Installed software]
Visual Studio 2008 Professional Edition
Windows Mobile 6 Professional SDK
Windows Mobile 6 SDK Refresh[Development language]
VC++
回答
-
Windows Mobileでどうかまでは調べ切れていませんが、ウィンドウを好きな形に切り取る手法としてリージョンというのがありました。
SetWindowRgnあたりで検索してみて下さい。
すべての返信
-
Windows Mobileでどうかまでは調べ切れていませんが、ウィンドウを好きな形に切り取る手法としてリージョンというのがありました。
SetWindowRgnあたりで検索してみて下さい。
-
To:Azulean様
質問視者のpoco2と申します。早速の解答ありがとうございます。
ご教授頂いた SetWindowRgn から、角を描画領域から外すことで角丸を実現できることを理解しました。
また、下記のURLにたどり着くこともできました。
Windows Mobile 6での実証はまだですが、トライします。
・八角形ボタンクラス(COctButton)
・ボタンコントロールインデックス
http://niigata.cool.ne.jp/minamix/buttonindex.htm
【参考】
Bitmapを透過する方法が説明されているサイトを見つけたため、角を透過させてボタンに貼り付ける方法もあると考えています。
http://athomejp.com/goldfish/mfc/gdi/transparent.asp
ご教授ありがとうございました。 m(_ _)m