• ベストアンサー

丸いボタンを作りたいが…

VBに限らず、ほとんどのAPはボタンが四角い表示になっています。それを、丸型のボタンにしたいのですが、ご存知の方がおられたら、表示する方法をご教授していただきたいのですが(ボタンそのものを、丸型にしたい…)。 ちなみに、APIを使用してウィンドウ(フォーム)を丸型(厳密には楕円)にすることが出来たのですが、ボタンは出来ませんでした。

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

  • ベストアンサー
  • haporun
  • ベストアンサー率40% (230/562)
回答No.3

イメージコントロールで作りましょう。 古くからのゲームなどでは、イメージコントロールを使ってボタンを作っています。 以下の方法は、円くない変な形をしたボタンを作ろうと思ったときの改造が面倒で、ファイルサイズもでかくなりますが、円いなら比較的簡単です。 透明色が使えるGIFかアイコンで、ボタンを押していないときと押しているときの絵を作ります。(別に使うユーザーのフォームの色に対応しないというなら、透明色でなく固定色でもかまいませんが) 例 -------------------------------------------------- Image2に押していないときの分、Image3に押しているときの分を貼り付けたとして、Image1をボタンにしたいとき、 Dim ButtonFlag As Boolean Private Function IsInImage(ByVal X As Single, Y As Single) As Boolean '以下の定数は楕円の大きさによって変えてください IsInImage = (X ^ 2 / 9 + Y ^ 2 / 16 <= 129600) End Function Private Sub Form_Load() Set Image1.Picture = Image2.Picture End Sub Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = vbLeftButton) And IsInImage(X, Y) Then Set Image1.Picture = Image3.Picture ButtonFlag = True End If End Sub Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Set Image1.Picture = Image2.Picture If ButtonFlag Then 'クリックイベントを記述してください End If ButtonFlag = False End Sub -------------------------------------------------- 長くてごめんなさい。

その他の回答 (3)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.4

ごめんなさい。 ちょっと間違えました。 下のほうを↓に修正してください。 Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Set Image1.Picture = Image2.Picture If ButtonFlag And IsInImage(X, Y) Then 'クリックイベントを記述してください End If ButtonFlag = False End Sub

  • mfuku
  • ベストアンサー率50% (173/345)
回答No.2

コムラッド社から、 「ボタンデザイナー Ver.1.0」 というActiveXコントロールが出てます。 それを使えば、ボタンの外観は自由にデザインできます。 一応ご参考までに。

参考URL:
http://www.comrade.co.jp/package/bd1.htm
noname#2829
noname#2829
回答No.1

私自身も素人なのではっきりしたことは言えませんが、API関数を使っても実現はしないと思います。 実現方法は2つ考えられます。1つは市販のActiveXコントロールで丸いボタンを購入すること。もう1つは自力でCOMコンポーネントを構築することです。但し、後者については通常C/C++などのツールを使うのが一般的でしょう。なぜならVB自体はRADツールという特性をもつからです。 VBとは「少ない知識と技術でまあまあのものいい加減にしかも早く作ることができるツールである」と理解しましょう。

関連するQ&A

  • 最大化ボタンを非表示にしたい(VB.NET)

    使用言語はVB.NETです。 フォームの最大化ボタンを使いたくなかったので、 MaximizeBoxをFalseに設定しました。 これでとりあえず、最大化ボタンを押すことは 出来なくなりましたが、表示そのものは残って しまっています。 表示そのものを消すことは出来ないのでしょうか? (最小化ボタンと閉じるボタンのみの表示にしたい) ご教授くださいませ。

  • グラフィカルボタン

    VBの標準のボタン(四角)では、かっこ悪いため、 インターネット上でよく見られるようなグラフィカルなボタン(画像の形とか円形とか楕円刑とか)を取り入れたいと思っています。 ImageコントローラにPictureを設定して、Clickイベントを取れば、簡単にできますがこの方法では、ボタンを押した感覚がしないのとボタン表示文字列が変更できません。 ご存知の方いらっしゃいましたら、どうか宜しくお願いします。

  • DataGridViewでのボタン処理

    お世話になります。 VB.NET2005のWindowsフォームにおいて、 DataGridViewを使用しています。 一番左の桁にボタンを表示しています。 このボタンを押すと、その行を削除する ロジックを作成しているのですが、 苦戦しております。 ご教授いただけると幸いです。

  • PDF起動時のナビゲーションパネルボタンの非表示

    PDF起動時のナビゲーションパネルボタンの非表示を、VB.NETのWebBrowzerを使用して、非表示にしたいと考えています。 #Toolbar=0 とかで非表示ができるので、それと同じ方法でできないでしょうか?ご存知の方がいらっしゃいましたらご教授下さい。

  • VB6でフォームに"?"ボタンを追加したい

    こんにちは。 VB6のフォームの右上上部に「閉じる」「最大化」「最小化」ボタンがあるのですが、これにもう一つ「?」ボタンを追加したいと思っています。 出来る方法があるらしい、とは聞いたのですが、ネットで探して見てもうまく見つけることが出来ませんでした。 どなたかご存知の方いらっしゃいましたら教えてくださるとうれしいです。 宜しくお願いします。

  • ユーザーフォームのコマンドボタンをマクロで操作したい

    Excel97でユーザーフォームを出しながらセルに入力できるようにしたいので、 http://www.ap.wakwak.com/~miko/Excel_Note/11-01_userform.htm#11-01-13 このサイトに書かれているように、ユーザーフォームにコマンドボタンを作成して、 ボタンのコードを  Private Sub CommandButton1_Click()   Application.GetOpenFilename  End Sub とし、「ファイルを開く」ダイアログを表示させてキャンセルするようにしたのですが、 この「コマンドボタンをクリックしてファイルを開くダイアログをキャンセルする」操作は 自動化できるのでしょうか? パソコンに慣れていない人用に作っているものですので、できるだけ使う人の操作を 少なくしたいのです。 ブックを開いた時にユーザーフォームを出すところまではできたのですが、 ユーザーフォームのコマンドボタンを自動的にクリックしてダイアログを キャンセルする方法がわかりません。 ご存知の方、どうぞよろしくご教授お願いいたします。 使用しているのは、 OS:Windows98SE ソフト:Excel97 です。

  • ACCESSのフォームにボタン等の追加を行うには?

    質問させて頂きます。 ACCESS2000でフォーム上にコードからボタン等のオブジェクトを追加したいのですが、どのようにすればよいのでしょうか? VB6ではControls.Addが使えたのですが、VBAでは使用できないようでした。 ご教授の程よろしくお願いいたします。

  • VB.netにてFTP送受信をする方法

    VB6.0で作成したWinInetを使用してのコードがVB.NETに移植すると接続ができなくなりました。 .netになってAPIの使用方法が変わったのでしょうか? ご存知の方がいらっしゃったらご教授ください。

  • VBのフォームを・・・

    VB.NETで作ったフォームを、 (1)ブラウザ上で表示する (2)Flashのボタンを押すことによって、VBのフォームを表示する 以上の(1)か(2)の方法は可能でしょうか? 本当に困っています。初心者すぎて申し訳ありませんが、ご存知の方はどうかよろしくお願いします!

  • 複数ボタンの判別とフォーム表示

    いつもお世話になっております。 現在JSPを見よう見まねで勉強しております。 登録、修正、削除のボタンをつくり、ボタンが押されたら、 登録用、修正用、削除用それぞれのフォームをボタンの下に表示させる動きのものを作成しようとしております。 どのボタンが押されたかを判別する方法。 同一ページに新たにフォームを表示させる方法。 この2点がどのように作ればよいのかが今一わからずにいます。 どなたかご存知の方がいらっしゃいましたらご教授お願い致します。

    • ベストアンサー
    • Java

専門家に質問してみよう