|
分類:[C#]
開発環境:Windows Vista SP1 仕様言語:C#(VisualStudio2005使用)
すみません。お世話になります。
VB6.0のLineメソッドと同じ機能を、C#で実現することは出来るでしょうか?
カメラから取得したデータをVC++で作成されたdllをで確保したメモリ領域に展開し、 VBのフォーム上に画像を表示、編集するプログラムがあります。 VBのほうを、C#で作り直すと言う作業をしています。
VB側でマウスを操作して、画像データに編集を行います。(四角、楕円、多角形) 編集中は、わかりやすいようにフォーム上にマウス動作の軌跡を描画しています。
VB6で作られたもともとのプログラム内では、MouseMoveイベント発生中に object.Lineメソッド、object.Circleメソッドを使って、フォーム上に編集部分を描画していました。
C#で同じ機能を実現するために、GraphicsオブジェクトのDrawRectangleなどを使ってフォーム上に描画をしています。 マウスに追随した形でDrawRectangleなどを発行すると、重ねた枡のように四角形が多重描画されてしまいますので MouseMoveイベント時に再描画を実行しています。 そうするとdllで描画されている元の画像も再描画してしまうため、非常にちらついて不快な状況になってしまっています。
VBで使っていた、LineメソッドやCircleメソッドと同じように、多重描画にならずにマウス操作の軌跡を表示することって 出来ないでしょうか?
問題は、再描画でちらついてしまう・・・と言うことなので、Lineメソッドと同じ・・と言うことにはこだわりません。 ただ、dllのほうを変更することは、今の段階で難しいので、何とかC#側からの操作で出来ないかと思っています。
以上、よろしくお願いします。
|