プロが教えるわが家の防犯対策術!

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

これらのことから,表示するために何が必要なのか教えてください。
お願いします。

A 回答 (3件)

塗りつぶしですが、そのやり方でいいのですが、円弧では塗りつぶしは出来ません。

円の場合だけです。

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)
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/18 14:01

塗りつぶしでしたら、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))
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/02/18 14:05

フォームのAutoRedrawプロパティをTrueに設定してください。

これで、円が出てくるはずです。
AutoRedrawについてはHELPを見てください。

この回答への補足

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)
こんなんじゃダメですか?お願いします。

補足日時:2001/02/12 19:43
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!