| ■No47810 (Jitta on the way さん) に返信 Jitta on the way さん返信ありがとうございます。
> さっそく意味不明です。「VB5のプログラムでは、そこら中でobjectにLineやらStringやらが描画されています」?こうだとしても、どこに描画しているのでしょう?
説明不足ですみません、Objectは条件によってPictureBox、Form、Printerに描画するようになっています。
>> Public Function AutoGra(ByVal oj As Object) As Graphics >> If TypeOf oj Is PictureBox Then >> Dim Pic As PictureBox = oj >> If Pic.Image Is Nothing Then oj.Image = New Bitmap(Pic.Width, Pic.Height) >> Return Graphics.FromImage(Pic.Image) >> ElseIf TypeOf oj Is Printing.PrintDocument Then >> Return ←@ >> End If >> End Function >> >>@の場所でPrintPageEventArgsのe.Graphicsを返したいのですが中々うまく出来ません。 > > なぜ、急に「e.Graphics」が出てくるのでしょう?やはり、呼び出しもとが問題だと思います。
描画ルーチンが多岐に及び、その一つ一つを認識できていません。
Private Sub Make_Line(x as single,y as single) oj.Line((x,y)-(x+10,y+10)) End Sub
↑こういった描画があちこちにあると言いたかったのです。 それを Private Sub Make_Line(x as single,y as single) Dim G as Graphics G.DrawLine(Pens.Black,x,y,x+10,y+10) End Sub に出来たらとっても楽ちんだな♪と安易に考えたのです。 でも今のObjectタイプが何か判断してからGraphicsをインスタンス化しないとダメですよね?? それをFunctionで書こうと思いました。
中々うまく伝えられなくて、説明できていないと思いますがどうぞ宜しくお願いします。。 |