• ベストアンサー

ピクチャボックスの使用方法

ピクチャボックスをピクセルモードに変更して、Width=2000位にしてLineとprintで描画をしています。 lineは0から2000まで線が引けるのですが、printで文字を書こうとすると、どうやら0から1000までしか書けないようなのです。 これは仕様なのでしょか? それともどこか設定を間違えているのでしょうか? どうか教えてください・・・

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.3

おそらくグラフをスクロールさせる件ですよね? PictureBoxのAutoRedrawはTrueになっていますか? 普通問題なくできるはずです。 Form1.Picture1.AutoRedraw = True AutoRedrawを有効にしておかないと 表示部分(1024)を超えた部分を自動で再描写してくれないので

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

Private Sub Picture1_Click() Form1.Picture1.Width = 2000 Form1.Picture1.CurrentX = 1800 Form1.Picture1.CurrentY = 200 Form1.Picture1.Print "a" End Sub 私の場合は上記を実行するとaがPicture1の枠の右にくっつく手前に現われました。 だからコーディングの不適当ではなく、何か別の原因であるようです。 なおLocateはCurrentX,CurrentYで出来ることを忘れていました。 またVB5ランゲージレファレンスでは、各種グラフィックメソッドを使った時 Line線の終了点、Print次の表示位置、Pset 書かれた点に位置づけられるとあります。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

私に質問を答える技量が無いのかもしれないが Private Sub Picture1_Click() Picture1.Width = 2000 Picture1.Line (0, 100)-(2000, 100) Picture1.Print "a" Picture1.Line (1800, 200)-(1800, 200) Picture1.Print "b" End Sub で仰っている1000を越えても(上記1800)bは 出てきます。aは出てきません(見えません)。Width= 4000にしたらaも見えます。当たり前ではないですか。 いまLineを引く(引き終えた)ことによって居る位置からPicture1.Print "a"などは書く(書き始める)という仕様なんでしょう。 その制約を離れたかったらLocateのようなCommandで書き始める位置にまず位置付けて置くべきということでは 無いですか。ただLocateは認められた指令では無かったと思いますが。 Picture1.Printだけ入れると改行して、左端に 位置付けてくれるとか Picture1.Print "b"; Picture1.Print "c" でbcとくっつくとかは旧DOS-BASICと同じですね。 Picture1.Font.Size = 20とかができるので、1文字で右へ進む量と下へ進む量は変わってくる。 以上誤解をしていないか心配ですが、ご参考になれば。

aioi_k
質問者

補足

自分の場合、下記のように書いてるのですが PicTrend.CurrentX = 1800 PicTrend.CurrentY = 200 PicTrend.Print "aaaaaaaa" やはり、1000以上はだめみたいです。 もしかしたら、ディスプレイ設定で1024*768になってるからでしょうか?

関連するQ&A

  • C#ピクチャーボックス再描画について

    C#ピクチャーボックス再描画について 動的生成したピクチャーボックスに文字を描画します そのあと、そのピクチャーボックスをD&DでForm内を移動できるようにしています その際、あるピクチャーボックスが別のピクチャーボックスの上を通過したり 他のコントロールが上になったりすると、描画した文字が消えてしまいます。 再描画について調べるとRefleshやUpdateとかができました。 しかし、Refleshを使うと文字を描画する前の状態を再描画してしまいます。 再描画の方法はTimerで10ミリ秒毎ぐらいにしようと思ってます。 Refleshをピクチャーボックスに文字を描画させた後に再描画できるように設定できればいいんですが…。 他に方法があったりしたら教えてください!!

  • ピクチャボックス間のコピー方法

    たびたび質問しているhidezoです(^_^; 表題のように、ピクチャボックスにある画像を、別のピクチャボックスにコピーしたいのですが、うまくいきません。 おそらく簡単な解決策があると思うのですが、ヘルプを参照してもよく分かりませんでした。 プログラムの内容 オブジェクト Picture2,Picture3に同じ画像を代入 Piture2上にLineを描画 2回目以降のPiture2にLineを描画する際に一度Picture3を代入して元の画像に戻してからLineを描画 (ゲームでいうとキャラクタ移動でキャラクタと背景の重ね合わせみたいな感じです) やってみた方法 方法1(ダメでした) Picture2.Picture = Picture3.Picture 方法2(ダメでした) Picture2.PaintPicture Picture3.Picture, 0, 0 方法3(できたけど・・・) SET Picture2.Picture = TMP ※TMPは・・・ Set TMP = LoadPicture(strOpenFile) Set Picture3.Piture = TMP 方法3の場合、グローバル変数を使わなくちゃいけないので避けたいです。よろしくお願いします。

  • ピクチャボックスで一部の文字を回転

    初歩的な質問かもしれませんが・・・ ピクチャボックス内に描画をしようとしているのですが, 縦軸のタイトルを90度回転させて表示させることはできるでしょうか。 ちなみにそこ以外は普通に横書きなので, Picture1.Print "経過時間" のように書いています。 文字列単位でプロパティを変更する方法がわからない状態です。。 わかる方がいましたらよろしくお願いします。

  • ピクチャーボックスでのスクロール方法

    ピクチャーボックスの中にPrintを使ってdataの出力やそのdataを基にしてLine等で作図をさせています。しかし、これらがピクチャーボックスの範囲を超える時は全体を見ることができません。リストボックスのようにスクロールして見るようにできないのでしょうか。画像dataなら分かるのですが、・・・・。よろしくお願いいたします。

  • ピクチャボックスに描画した画像の保存

    VB6.0にて、 http://www.uploda.org/uporg898462.jpg このようなものを作成しました。 折れ線グラフはプログラムにて後から描画したもの、 それ以外の目盛りなどは最初からピクチャボックスに描画してあるものです。 pic1,pic2は共にピクチャボックスです。 赤い線で囲まれたpic1を目盛り、グラフ、その他のテキストボックスや文字と共に画像として保存したいのですが、 SavePicture Pic1.Image, "C:\SaveTest2.bmp" とすると、pic1の大きさの、何も描画されていない真っ白な画像が保存されてしまいます。 また、SavePicture Pic2.Image, "C:\SaveTest2.bmp" (pic2の保存) とすると、折れ線グラフのみが描画され、目盛りは無くなった画像が保存されてしまいます。 2つのピクチャ共にAutoRedraw=Trueを設定しています。 pic1を上手く保存する方法は無いでしょうか? ご教授、お願いします。

  • ピクチャーボックスで四角形内を塗りたい。

    初歩的な質問でしたらすみません。 ピクチャーボックスに四角形を描画します。 その四角形の内側をクリックしたら、四角形の内側が 塗りつぶされるようにしたいと思っております。 黒で四角形を書き、青く塗りつぶす。というように ペイントの塗りつぶしのようなイメージです。 四角形の大きさが固定でしたら、何とかできたのですが、 寸法が変化するので微妙な大きさになると塗りつぶせない事が あるのでこまっています。 簡単に塗りつぶせる方法がありましたら教えてください。 形は四角形限定です。 どうぞよろしくお願いします。

  • ピクチャボックスのサイズを状況に応じて変えたい。

    度々お世話になります。 今、ピクチャボックスに描画を行い、別のピクチャボックス上のイメージに表示しています。 描画を行う範囲はその都度異なり、それに対応するためにピクチャボックスは可能な限り大きくしてあります。ところが、イメージに表示させる段階で、描画していない部分まで表示するため、見た目が悪く、使い勝手も悪いのです。そこで、作図範囲のみを表示させたいと考えています。 やはり、ピクチャボックスのサイズをどうにかするのが先決かと思いまして質問させていただきました。できれば、作図範囲に合った大きさになるようにその都度変化させたいと思うのですが、そういった方法はありますか? あるいは、作図範囲のみをイメージに表示する方法があればそれでも結構です。 何か良い方法があれば、御教示いただけると幸いです。 開発環境はWindows2000、VB6.0です。 宜しくお願いします。

  • ピクチャボックス内の線を選択(VB6)

    VisualBasic6.0に関する質問です. ピクチャボックス内にグラフィック描画を行い, ある線や丸のみをマウスで選択できるようにしたいと考えています. そのグラフィックがピクチャボックス内に位置する領域を記憶しておき マウスの位置がそこにきたときのみイベントを起こすという 流れで出来そうな気はしているのですが,もしやもっと 簡単な方法がVBの機能で備わっているのでは,と考えていたりします. (領域計算が面倒くさいなぁと・・・) もし,そういった機能,もしくはより簡単な方法をご存知の方が おられましたら,どうぞお教えください. よろしくお願いいたします.

  • VB.NETでピクチャーボックス2個のサイズを変えたい

    VB.NET2003です。 ホーム上に二つのピクチャーボックスを配置し、ペンやブラシで直線や文字を描きます。 二個のピクチャーボックスを上下に配置し、その境界線上にマウスをもってゆき、上下のBOXサイズの比率を変えたいのですが、可能でしょうか?

  • Picture box の サイズを変更

    お世話になります。 VB6 でform1 上に Picture1 を貼付け ボタンを押すとPicture Boxのサイズを変更したいのですが 上手くサイズが変更されません。何か根本的な間違いでしょうか よろしくお願いします。 例: Yoko = 600 Tate = 480 Private Sub Command1_Click() With Picture1 .ScaleMode = 3 ' .Width = Yoko .Height = Tate End With End Sub

専門家に質問してみよう