『 その7-4 』
■ 実行する
Pic.AutoRedraw = True Pic.Line(0, 0) - _ (Pic.ScaleWidth-1, Pic.ScaleHeight-1) , _ &hFF& Pic.AutoRedraw = False
Pic.Cls Pic.AutoRedraw = True For Y = 0 To Pic.ScaleHeight - 1 For X = 0 To Pic.ScaleWidth - 1 Pic.PSet (X, Y), &HFF& Next X Next Y Pic.AutoRedraw = False
For Y = 0 To Pic.ScaleHeight - 1 For X = 0 To Pic.ScaleWidth - 1 Pic.PSet (X, Y), &HFF& Next X Next Y 'Pic.AutoRedraw = False ■ ウインドウの表示システム Windowsでは、当たり前の話であるが、ウインドウ同士が重なる事がある。クリックする事によって上に来たり下へいったりするが、上に来たときには、内部に表示されているものが欠けたり消えたりしていてはいけないに決まっている。しかし、パソコンの画面というものはあくまでも1枚であり、ウインドウが重なる事を考慮に入れて何層も持っているわけではない。ということはウインドウの上に別のウインドウが重なると、表示されているイメージの情報は消失してしまうのである。それでは困るということで、ピクチャーボックスに何かを描くと、実のことをいうとメモリ内部の見えない領域にイメージを作り、それを画面に転送しているのである。だから、ピクチャーボックスを作ると、同じ大きさでメモリ内にもう一枚同じ物が生成されるのである。 AutoRedrawというのはどちらをアクセスするかのスイッチで、Trueの場合はメモリ内に描画を行ない、Falseの場合は画面に直接描画が行われるのである。ウインドウの上下関係がクリックなどによって変えられたり、VBのRefreshコマンドが実行されると、メモリから画面へイメージの転送が行われる。 ということなので、Trueで描画するとウインドウの書き換えが起こってもイメージは残るが、描画の過程を見る事ができない。Falseで描画すると過程を見る事ができるものの、イメージは仮なので、一度隠れてしまうと消えたままになってしまうのである。 このAutoRedrawというスイッチは、ピクチャーボックスの内容を調べるPointという命令でも有効なので、書き込んだときの状態と同じ状態でこの命令を実行しないと、正しい答えが得られなかったりするので注意が必要なのだ。 |
その7-1 |
その7-2 |
その7-3 |
その7-4 |
その7-5 |
その7-6
『 サルのゲーム製作講座 』
目次 |
その 1 |
その 2 |
その 3 |
その 4 |
その 5 |
その 6 |
その 7 |
その 8 |
その 9 |
その 10 |
その 11
e-mail: sc_3da@magical2.egg.or.jp