• ベストアンサー

グラフィックメソッドについて

VBでグラフィックコントロールで円を書いたときはうまく表示されるのに グラフィックメソッドで円を書いたときはうまく表示できません。 <詳細> 最初からグラフィックメソッドで円を描くとちゃんと表示される。 プログラムが存在しているところに追加で円を描こうとすると(円グラフ見たいの)うまくかけない。 form_loadの画面にcall で呼び出しても,描画が行われない。 これらのことから,表示するために何が必要なのか教えてください。 お願いします。

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

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.2

塗りつぶしですが、そのやり方でいいのですが、円弧では塗りつぶしは出来ません。円の場合だけです。 DrawWidth = 1 FillStyle = 0 FillColor = QBColor(7) Circle (CX, CY), Rad, QBColor(6) Line (CX + Rad, CY)-(CX, CY), QBColor(6) Line (CX, CY)-(CX, CY - Rad), QBColor(6)

nox_neo
質問者

お礼

円弧の場合は別の方法なんですか。 なるほど,これでできるようになりました。 すいませんでした,変数の説明も何も書かずに質問しちゃって。 読みづらかったのに…本当に有難うございました。

その他の回答 (2)

noname#2829
noname#2829
回答No.3

塗りつぶしでしたら、API関数を使ってみたら如何ですか? 使い方は至って簡単。下記例なら、指定した(x座標, y座標)からQBColor(i)にぶち当たるまで正に洪水の如く塗りつぶしてくれます。(塗りつぶす色は現在、フォームのFillcolorプロパティに設定されている色です) でわ。 Private Declare Function FloodFill Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long 'API関数の宣言 Dim ret As Long 'APIの戻り値 ------------------------------------------------------ ret = FloodFill(hdc, x座標, y座標, QBColor(i))

nox_neo
質問者

お礼

お返事有難うございました。 なんか,floodfillのfloodあたりが洪水って感じですね。 まだ,VBを始めたばかりなのでAPIがいかなるものなのかわからないので この例の意味するところはまったくわかりませんが,とりあえず代入してみると うまく塗りつぶしてくれました。 また,もうちょっとレベルアップしてからAPI関数なるものに挑戦します。 手持ちの参考書にもAPIについてなんかかいてあるし… またAPIに触ったときにも教えてください。

  • arata
  • ベストアンサー率49% (139/279)
回答No.1

フォームのAutoRedrawプロパティをTrueに設定してください。これで、円が出てくるはずです。 AutoRedrawについてはHELPを見てください。

nox_neo
質問者

補足

autoredrawにしたらちゃんと円が出てきました。 そこでもうひとつ質問いいですか? その中を塗りつぶしたいんですけれども,どうしたらいいんですか? DrawWidth = 1 FillStyle = 0 FillColor = QBColor(7) Circle (CX, CY), Rad, QBColor(6), Pi / 2, Pi / 2 + 3 * Pi / 2 '時計の枠の円 Line (CX + Rad, CY)-(CX, CY), QBColor(6) Line (CX, CY)-(CX, CY - Rad), QBColor(6) こんなんじゃダメですか?お願いします。

関連するQ&A