掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
続・リアルタイム表示するには? (ID:86454)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>波形表示するには、何か足りないのですかね? 下記2行をForm_Loadの一番最後に移動すればよろしいかと。。。 Me.Timer1.Interval = 200 Me.Picture1.ForeColor = RGB(255, 255, 255) >なぜ幅のところで2を引いているのでしょうか? Call MoveToEx(hDCh, pWidth - 3, oldY, 0) Call LineTo(hDCh, pWidth - 2, i) 上もそうですね。 これは、右端-3の位置から、右端-2の位置へ線を引いています。 なぜ、右端まで線を引かないのか? なぜ、右端に目盛線を引かないのか? というご質問ですよね? まず、pWidthは端ですので何も描画できません。 最低でもpWidth - 1が描画するための右端になります。 (左端の0には描画できます) 0〜pWidth-1までに描画した画像をBitBltで左に移動するわけですが、 左に1移動しますので-1〜pWidth-2までに画像がコピーされます。 (当然-1は描画できません) コピーされましたので、0〜pWidth-2までの画像は新たに入れ替わっています。 しかし、pWidth-1の画像はどうでしょう? そのまま、残ってしまうんですよ。 このため、例えばpWidth-1に目盛線を描画すると、 右側が真っ黒になっていってしまいます。 これを避けるためのpWidth-2として余白を作っているのだと思われます。 >デバイスコンテキストのハンドルを持っている引数 hDChは、画像を保持しているメモリ空間へのハンドルとかなんとか。。。 デバイスコンテキストのハンドル(Picture1.hdc)を、 CreateCompatibleDC関数に引数として渡すことで、 『メモリ』デバイスコンテキストのハンドルを取得しているらしいです。 hDChは引数にもなりますが、正確には変数ですね。 つまり、デバイスコンテキストのハンドル→メモリデバイスコンテキストのハンドル 引数→変数ですね。 Pictureコントロール自体、メモリへの保持をしてくれるため、 これらは全てPicture1.hdcに置き換えても動作しますが、 おそらく高速化のためにこのようにしているのでしょう。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.