OS:windowsVP
vb:vb6
現在、FORM上に座標値を取得して、その座標値に点を描画させる
ようにしたのですが、その点の横あたりに、文字を書かせるように
したいのですが、どの様にしたらできますでしょうか?
VB超初心者なので、やさしくお教え願います。
なお、現在書いた文は以下のとおりです。
Private Sub Command1_Click()
Dim XX(100), YY(100) As Single
ID = Text1.Text
XX(ID) = Text2.Text
YY(ID) = Text3.Text
Form1.DrawWidth = 7
Form1.PSet (XX(ID), YY(ID)), QBColor(9) ←この後に文字を・・・
ID = ID + 1
Text1.Text = ID
End Sub
以上、よろしくお願いいたします。
一番簡単なのはPrintメソッドですかね。
Private Sub Command1_Click()
Dim XX(100), YY(100) As Single
Dim id As String
id = Text1.Text
XX(id) = Text2.Text
YY(id) = Text3.Text
Form1.DrawWidth = 7
Form1.PSet (XX(id), YY(id)), QBColor(9)
'描画された点に重ならないように座標を求める
Form1.CurrentX = XX(id) + (Form1.ScaleX(Form1.DrawWidth, vbPixels, Form1.ScaleMode) / 2)
Form1.CurrentY = YY(id) - (Form1.TextHeight("出力する文字列") / 2)
Form1.Print "出力する文字列"
id = id + 1
Text1.Text = id
End Sub
Printメソッドは座標を指定して出力できないので、
出力位置をCurrentX,CurrentYプロパティで指定してください。
上記のソースでは描画された点に重ならないように座標を求めて代入しています。
だいぶ適当に作りましたが、DrawWidthとか変えても点の右側に文字列が出力されると思います。
また、出力される文字列はFormのFontプロパティに依存しますので、
文字列のサイズ等変更したい場合はFontプロパティを変更するようにしてください。
Printメソッド以外に何かありますか?
また、この記入した文字については、消すことは可能でしょうか?
再度、ご返答願います。
あとはAPIを使用することになると思います。
DrawText,TextOutを調べてみてください。
Pritメソッド、また上記のAPIは画面に文字を描画していますので、
文字列だけを消去ということはできません。
あ、後は背景を透明にしたLabelコントロールを使うのもいいかも知れません。
これでしたら、Captionプロパティを空にするなり非表示にすればすみますので。
なんどもすみません。
Labelコントロールを使用する場合は、Labelをあらかじめ必要な数だけ
用意しておかなければならないのでしょうか?
それとも、Labelコントロールを配置させる命令を記述することは可能
なのでしょうか?
Labelをコントロール配列にして1つだけ配置します。
それで、
Load Label1(lCntLbl)
Label1(lCntLbl).Left=配置するX座標
Label1(lCntLbl).Top=配置するY座標
Label1(lCntLbl).Visible=True
lCntLbl=lCntLbl+1
などとするとLabel1が新しく配置されます。
※lCntLblはLabelコントロールの数を保持する変数