• ベストアンサー

ボタン(コントロール)を丸くしたい

VC++.NET2005にて、コントロールのカスタマイズをしています。 そこで、四角いボタンを丸く実装したいのですが、どなたかご存知の方いらっしゃいましたら、ご教授の程宜しくお願い致します。 また、最終的にはスライダーバー、スクロールバーのつまみ部分を丸くしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.2

★アドバイス ・ボタンウインドウに対してリージョンを使えば良いと思います。  試していませんが丸いウインドウを作ればいいのです。  描画で丸くしてもクリック時にボタンではない場所をクリックすると  丸い形をしたボタンが押されてしまいます。だからリージョンで丸く  するのです。 >また、最終的にはスライダーバー、スクロールバーのつまみ部分を丸くしたいです。  ↑  つまみ部分はオーナードローなどで丸い形に描画するしかないでしょう。 ・以上。参考にして下さい。

unlonghorn
質問者

お礼

早々の回答、有難うございます。 CRgnがリージョン作成というクラスだったので、この中の関数でがんばって作ってみます。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.1

MFCで良ければ、「透過(アルファ)ボタンMFCライブラリ」 http://www.vector.co.jp/soft/winnt/prog/se444170.html ってのがあります。2000以降限定ですが。 エッジのジャギーを気にしないなら、ボタンのクラスを継承してボタンをオーナードローする時に透明色でイメージを抜いてやれば丸も含めた自由な形のボタンを作れますよ。これは、C++ネイティブとC++/CLIで使える手法です。

unlonghorn
質問者

お礼

早々の回答有難うございます。 Vectorにこんなライブラリがフリーであったんですね。 早速試してみます。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コントロールのイベントについて

    はじめまして。 質問させて下さい。 VC++ 2005 MFC で開発しております。 ソースレベルでコントロールの押下を実装できるでしょうか? なかなか説明が難しいのですが、 OnBnClick...()のような イベントハンドラを呼び出すのではなく、 実際にボタンが押下された時と同等のトリガー的な動作を 擬似的にさせたいと考えております。 どなたかお詳しい方がおりましたら、 ご教授のほど宜しくお願いいたします。

  • vaSpreadコントロールのスクロールバーの背景色

    お世話になります。 vaSpreadコントロールで縦横両方のスクロールバーを表示させた時、 コントロールの右隅の部分の表示色をシステム色に(&H8000000F&) 変えたいのですが該当のプロパティーが見当たりません。 変える方法をご存知の方、御教授下さい。 ┌────────┬─┐ │        │ │ │ Spread    │ │ │ Control    │ │ │        │ │ │        │ │ │        │ │ ├────────┼─┤ │        │■│←この部分 └────────┴─┘

  • リストコントロールの使用法について

    現在、VC++6.0を使用してアプリケーションの開発を行っていますが、リストコントロールで作成されるスクロールバーのイベントの取得方法が分からず困っております。 よろしくお願いします。

  • リストコントロールのスクロールバーを操作無効にするには

    お世話になります、fujicafeと申します。 現在、VC++でMFCのダイアログベースのアプリケーションを作成し、そこでリストコントロールを配置させています。 リストコントロールは自動的に垂直方向のスクロールバーを表示させるようにしています。 そこで質問なのですが、現在、リストコントロールの垂直方向のスクロールをスクロールバーの操作ではなく、キー操作によって行おうと思っているのですがどのようにすればスクロールバーの操作を無効にできますでしょうか? ポイントとしては ・リストコントロールの自動的に表示させる垂直スクロールバーはそのまま表示させたい(スクロールバーは全体行での現在の行の位置を示すだけ) ・リストコントロールの垂直方向の移動はキー操作でしたい。 これを実現するには、やはりリストコントロールのスクロールバー表示を無しにし、別でスクロールバーを設置させるしか方法はないでしょうか? 現状で、キー操作でのリストコントロールのスクロールバーの操作は実現できていますので、出来ればリストコントロールのスクロールバーの操作の無効のみが出来ればいいなと思っております。 ご意見がありましたら、よろしくお願いいたします。 尚、開発環境は Windows CE 6.0 Visual Studio 2005 です。

  • ダイアログ上コントロールの動作について

    MFCでダイアログにて動作するアプリケーションを作成しています。 表示されたダイアログの枠をドラッグすると、ダイアログの大きさが変わりますが、 中にあるコントロールの大きさ・位置は変わりません。 ダイアログの大きさ変更に伴い、コントロールの大きさも変更するには、 どのような実装の仕方をすれば良いのでしょうか? 解決法をご存知の方おられましたら、ご教授お願い致します。 開発環境はVC++2005です。

  • ボリュームコントロール

    質問です。PCはwin2000です。音量の調整をするためにボリュームコントロールを開いて「ボリュームコントロール」のツマミを動かそうとしたら、バーが薄い灰色になっていて動かせません。「入力モニタ」のところも同様に動かせませんでした。OSの再インストールのほかに解決方法がありましたらご教授お願いします。

  • 【VC++】コントロールの上に描画

    【VC++】コントロールの上に描画 Visual C++ 2005環境です。 ニコニコ動画みたいな動画プレイヤを作ろうとしているのですが、 作成するにあたって、コントロールの上にテキストを描画する方法で悩んでいます。 ボタンでもチェックボックスでもなんでも良いのですが、 そういったフォーム上のコントロールの上にテキストなり図形なりを描画するのって どういう方法で実装したら良いのでしょうか? サンプルのコードがあれば嬉しいですが、 無くても「こういうものを調べれば出来る」という取っ掛かりだけでも 教えて頂けると助かります。 すみませんが、方法ご存知の方居ましたらお願いします。

  • ボタンを押したら記号文字(α, ☆)等を、表示させたい

    現在、VC++.NET2005で、スクリーンキーボードならぬ、仮想キーボードを作成しています。 その中で、ASCIIコード表にある一般的なキーボードのキーは、各ボタン(アルファベット,ファンクションキー,テンキー等)を押したら、アクティブなエディタへ表示、動作させるように実装できました。 しかし、今回はWindows標準のスクリーンキーボードにはないようなキー(α, ★, (6))等の記号文字を表示させなくてはいけなくなり、ASCIIコード表にないようなこの文字たちをどうやって表示させたらいいのかがわかりません。 どなたか、「これらの記号もASCIIコードに変換して表示できる」等、ご存知の方いらっしゃいましたら、ご教授の程宜しくお願い致します。

  • VC++ DialogBoxへのscroll可能なformの貼り付け

    お世話になります。 VC++初心者です。MFCアプリケーションで ダイアログボックスにスクロール可能なフォームを固定で貼り付けようと思っています。 具体的には以下のことを行いたいのです。どなたかご教授願います。 フォームを貼り付けるダイアログ testDialog 貼り付けられるフォーム formChild formChildには複数(例えば30個)のテキストボックス(エディットボックス)を貼り付けておきます。 testDialogにformChildを貼り付けますがこのときテキストボックス10個分しか表示されないようにしておき、スクロールバーにてformChildの表示位置が変わるようにしたいと思っています。(11個目が表示されると1個目がきえる) このときにはりつけるformChildをスクロール可能なダイアログであるFORMVIEWを貼り付けられれば比較的簡単に実装できそうなのですが、 これが実装可能なのかどうかわかりません。 現在テスト的にプロパティページを貼り付け、スクロールバーを貼り付けて、スクロールバーの移動にあわせてプロパティページの表示位置を変えようかとも思いましたがプロパティページではTABが勝手に表示されてしまうので使えなさそうです。 質問を整理すると 1.ダイアログボックス上にスクロール可能なエディットコントロールの貼りついたFORMVIEWは貼り付けられるか。 2.TABのないプロパティページを作成することはできるか、また作成することができるならどう作成すればいいか。 3.1が実現可能だとして、2の表示位置をスクロールバーを貼り付けることによって変更するやり方とどちらが比較的簡単に実装できるか。 4.1、2以外の方法で比較的簡単に上記で実現したいことを行う方法があればどうすればよいか。 以上、お分かりになる範囲でお教えいただけると非常にありがたいです。お力をお貸し下さい。よろしくお願いします。

  • ボタンがおかしくなりました・・・

    こんばんわ。さっきパソコンを終了しようとしたら、フリーズしてしまったので仕方なく電源を切ったんです。そうしたら、パソコンがおかしくなってしまいました。右上のほうに、×とか□とか_っていうボタンありますよね? あそこの部分が全部数字に変わってしまったんです。 スクロールバーもおかしくなって、▲や▼のボタンの部分も数字に変わってしまって意味がわからなくなっています・・・あとは、チェックボックスありますよね、あそこの部分もワケのわからない真っ黒な変な文字にかわってしまいました。 何回再起動しても直りません。このままでは非常に使いづらくて困っています・・ どなたか助言いただけないでしょうか。お願いいたします。