掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
続・リアルタイム表示するには? (ID:86456)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
あのサンプルには画像を消すっていう処理が全く入ってないんですよ。 あるのは上書きのみ。上書きしていない部分はそのまま残ります。 それを踏まえて、、、 >残った画像というのはコピーされていない部分ですよね? コピーされています。 0〜pWidth-1までがコピーされて、 -1〜pWidth-2までに貼り付けられるんです。 -1〜pWidth-2までの画像は上書きされるので元の画像は消えますが、 pWidth-1の部分はコピーされたものの貼り付けされていないので残りますね? ここまではOK? 次のタイマーイベントで、現在の画像がまたコピーされます。 0〜pWidth-1がコピーされて、 -1〜pWidth-2までに貼り付けられます。 ほら、pWidth-1とpWidth-2にある画像は同じモノですね。 上から何か(波形など)を書き加えることはできても、 消すという作業が入っていないので、どんどん積もっていってしまいます。 >古いグラフと新しいグラフの見分けがうまくつかめないです。 新しいグラフはこれ。 Call MoveToEx(hDCh, pWidth - 3, oldY, 0) Call LineTo(hDCh, pWidth - 2, i) 分かり易くすればこう。 Picture1.Line (pWidth - 3, oldY)-(pWidth - 2, i) ここでも、-2として余白を作っていますね。 これでもわからなければ、タイマーを止めちゃって、 コマンドボタンを2つ作って、下を実行して試してね。 Command1→Command2を交互にクリックすると、新しいグラフのみが現れるから。 Command1だけをクリックし続けるとどうなります? 余白を作るとどうなります? この程度の事は自分でやってくれないと。。。 Private Sub Command1_Click() Call API_Graph End Sub Private Sub Command2_Click() Picture1.Cls End Sub Private Sub API_Graph() Dim i As Integer 'Do Call BitBlt(Picture1.hdc, _ 0, _ 0, _ pWidth - 1, _ pHeight, _ Picture1.hdc, _ 1, _ 0, _ SRCCOPY) If counter Mod pGrid = 0 Then ' Call MoveToEx(Picture1.hdc, pWidth - 2, 0, 0) ' Call LineTo(Picture1.hdc, pWidth - 2, pHeight) Call MoveToEx(Picture1.hdc, pWidth - 1, 0, 0) Call LineTo(Picture1.hdc, pWidth - 1, pHeight) End If i = Sin(0.1 * counter) * _ (pHeightHalf - 1) + _ pHeightHalf Call SelectObject(Picture1.hdc, hPenC) Call MoveToEx(Picture1.hdc, pWidth - 2, oldY, 0) Call LineTo(Picture1.hdc, pWidth - 1, i) Call SelectObject(Picture1.hdc, hPenB) Call BitBlt(Picture1.hdc, _ 0, _ 0, _ pWidth, _ pHeight, _ Picture1.hdc, _ 0, _ 0, _ SRCCOPY) counter = counter + 1 oldY = i DoEvents 'Loop End Sub
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.