none
VC++で角丸ボタンを配置する方法について RRS feed

  • 質問

  •  ご教授をお願い致します。

    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++

    2008年12月24日 10:55

回答

すべての返信

  • Windows Mobileでどうかまでは調べ切れていませんが、ウィンドウを好きな形に切り取る手法としてリージョンというのがありました。

    SetWindowRgnあたりで検索してみて下さい。

     

    http://msdn.microsoft.com/en-us/library/aa930600.aspx

    2008年12月24日 15:41
    モデレータ
  • To:Azulean

     

     質問視者のpoco2と申します。早速の解答ありがとうございます。

     ご教授頂いた SetWindowRgn から、角を描画領域から外すことで角丸を実現できることを理解しました。

     また、下記のURLにたどり着くこともできました。

     

    Windows Mobile 6での実証はまだですが、トライします。

     

    ・八角形ボタンクラス(COctButton)

    http://www.vcppclub.com/

    ・ボタンコントロールインデックス

    http://niigata.cool.ne.jp/minamix/buttonindex.htm

     

    【参考】

     Bitmapを透過する方法が説明されているサイトを見つけたため、角を透過させてボタンに貼り付ける方法もあると考えています。

    http://athomejp.com/goldfish/mfc/gdi/transparent.asp

     

    ご教授ありがとうございました。 m(_ _)m

    2008年12月26日 0:52
  • こんにちは。中川俊輔 です。

     

    Azuleanさん、回答ありがとうございます。

     

    poco2さん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、Azuleanさんの回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしく願いします。

    それでは!

    2009年1月9日 8:16