テクニカルノート07: Using PictureBox

March 12, 2003

© NSB Corporation. All rights reserved.

Go to English page.
マイクロソフト社のドキュメントも参考にして下さい。

PictureBox オブジェクトは、絵を表示することの他にも、たくさんの用途で使用出来ます。もちろん .bmp ファイルを表示するにのに使われます。また、線や丸などの形を描くことや、テキストの表示、さらにタップなどのイベントの検出も出来ます。PictureBox オブジェクトは、NS Basic/CEの最初のインストール時に、同時にインストールさます。使用にあたり、他に特別なものをインストールする必要がありません。

あなたのプログラムからの標準アウトプットは "Output" と呼ばれるオブジェクトに行きます。以下の例では、Output オブジェクトを使用した、様々なプロパティ、メソッド、およびイベントをデモンストレーションします。

独自のPictureBoxオブジェクトの作成も可能で、それらはOutput オブジェクトの上に表示されます。以下のようなコマンドをご使用下さい。

addObject "picturebox","pic",0,0,50,50

 

注記およびプログラムの癖

1. フォントサイズを設定したい場合は、先にフォント名を設定して下さい。

2. cls ファンクションはプロパティをリセットします。フォントなども含まれます。

3. DrawTextを呼ぶ前に cls を使って古い値を消去する必要があります。

4. ScaleMode(計測単位)のデフォルトはTwipsです。pixelsに変更するには、scalemode=3 にして下さい。

5. 常にgridオブジェクトを最初に作成し、Visual Designerコードの前に入れて下さい。さもなければ、grid オブジェクトからのイベントは失われます。

6. Pocket PCデバイスで、100x100より大きなPictureboxが作れない場合、widthやheightを直接設定して下さい。正しく再描画されます。

AddObject "PictureBox", "PictureBox1", 0, 100, 240, 180
Set Form1(2) = PictureBox1
Form1(2).width=240
Form1(2).height=180

以下の表に記載されている、PictureBox プロパティ、メソッド、及びイベントはサポートされています。

プロパティ

プロパティは値を設定するか、返します。シンタックスは、

msgbox pic.backcolor 'display the current backcolor

pic.fontsize=10 'set the fontsize to 10

名前

内容

BackColor

色、0 から 16,777,215 までの整数。色の定数を参照。

BorderStyle

0 : 無、1 : 単線ボーダー

DrawWidth

ドローイングメソッド用の線幅

FillColor

形、円、ボックス用の色

FillStyle

0 : 無地、1 : 透明

FontBold

True/False.

FontItalic

True/False.

FontName

文字列

FontSize

ポイント(points)値

FontStrikethru

True/False.(抹消ライン)

FontTransparent

True/False. 背景グラプィックスを通して見せるか?

FontUnderline

True/False.

ForeColor

Height

オブジェクトの高さ

Left

オブジェクトの左端

Picture

.bmpファイルの名前を持つ文字列

ScaleHeight

カスタムスケール使用の高さの単位

ScaleLeft

オブジェクトの左端(拡大/縮小用)

ScaleMode

0 ユーザー指定
1 Twips (1440 dpi)
2 Points (72dpi)
3 Pixels
4 Characters (文字)(水平 = 120 twips, 垂直 = 240 twips)
5 inches
6 millimeters
7 centimeters

ScaleTop

現オブジェクトのトップ

ScaleWidth

指定スケールを使った幅の単位

Tag

必要時に何にでも使用可能

Top

オブジェクトの上端

Width

オブジェクトの幅

 

メソッド

名前

引数

内容

Cls

no args

Textとグラフィックを消去

DrawCircle

x,y,radius[,color][,aspectRatio]

 

DrawLine

x1,y1,x2,y2[,color][,box],[,fill]

Boxはtrue/false.

DrawPicture

picture,x1,y1[,width,height1,x2, y2,width,height2,rasterop]

 

DrawPoint

x,y[,color]

 

DrawText

text

オブジェクトの次のラインに描く。位置は指定出来ない。

Move

x,y[,width,height]

オブジェクトを新しい x, y の位置へ移動

Refresh

オブジェクトの再描画

ScaleX

width, fromScale, toScale

幅のスケールを変換する

ScaleY

height, fromScale, toScale

高さのスケールを変換する

SetScale

x1,y1,x2,y2

スケールの変更に使用

TextHeight

text

Textの高さを戻す、埋め込みCR'sはOK

TextWidth

text.

最も幅のあるラインの幅を戻す

 

イベント

Eイベントはプログラム内にサブルーチンが存在する場合に、それらのサブルーチンコールをもたらします。サブルーチンには<objectName>_eventNameの名前を付けなければなりません。

例えば、 Output オブジェクトでのクリックを捕えるには、次の事が必要です。

sub output_click
'your code to handle a click
end sub

イベント名

引数

内容

Change

 

オブジェクトが変更した時に呼ばれる。

Click

 

オブジェクトがタップ(クリック)された時に呼ばれる。

DblClick

 

オブジェクトがダブルタップされた時に呼ばれる。

KeyDown

keyCode, shift

Shift=1, 2=CTRL, 4=ALT

KeyPress

keyCode

 

KeyUp

keyCode, shift.

Shift=1, 2=CTRL, 4=ALT

MouseDown

button, shift, x, y

 

MouseMove

button, shift, x, y

 

MouseUp

button, shift, x, y

 

Resize

height, widget.

オブジェクトが、最小化/最大化/もとのサイズに戻されると呼ばれる。

 

Sample Code

rem Play around with some picturebox functions

output.backcolor=vbwhite
output.scalemode=3
output.drawpicture "\windows\startup.bmp",300,0
output.drawcircle 150,150,25
output.drawcircle 250,100,25
output.drawText "this is drawtext"
output.drawText "this is some more drawtext"
print
print

addObject "picturebox","pic",200,0,50,50
pic.borderstyle=1

sub pic_click
  print "pic click"
  pic.move 1200,1200
end sub

sub output_click
  print "click in Output" 
end sub

sub output_mousedown(button, shift, x, y)
  print "mouse down: button:" & button & " Shift:" &  shift & " X:" & x & " Y:" & y
end sub