C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: VB6.0のLineメソッドと同じことをVC#ですることは


(過去ログ 40 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■20868 / inTopicNo.1)  VB6.0のLineメソッドと同じことをVC#ですることは
  
□投稿者/ ましゃまる (1回)-(2008/06/18(Wed) 20:56:48)

分類:[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#側からの操作で出来ないかと思っています。

以上、よろしくお願いします。
引用返信 編集キー/
■20870 / inTopicNo.2)  Re[1]: VB6.0のLineメソッドと同じことをVC#ですることは
□投稿者/ ネタ好き (456回)-(2008/06/18(Wed) 21:51:12)
No20868 (ましゃまる さん) に返信
GraphicsのDrawLineメソッドがそれに該当すると思います。
ただ、グラフィックの乱れは.NETのイベントの流れを掴んでいないのが原因だと感じました。
DrawLineメソッドを使用して、イベントの流れを一度確認してください。

引用返信 編集キー/
■20871 / inTopicNo.3)  Re[1]: VB6.0のLineメソッドと同じことをVC#ですることは
□投稿者/ やじゅ (457回)-(2008/06/18(Wed) 21:53:12)
やじゅ さんの Web サイト
No20868 (ましゃまる さん) に返信
> 開発環境:Windows Vista SP1
> 仕様言語:C#(VisualStudio2005使用)
> VB6.0のLineメソッドと同じ機能を、C#で実現することは出来るでしょうか?
>

PowerPacks2.0 はどうでしょうか?
http://hiros-dot.net/CS2005/Control/PowerPacks2.0Menu.htm
引用返信 編集キー/
■20880 / inTopicNo.4)  Re[2]: VB6.0のLineメソッドと同じことをVC#ですることは
□投稿者/ ましゃまる (2回)-(2008/06/19(Thu) 09:30:01)
No20870 (ネタ好き さん) に返信
> ■No20868 (ましゃまる さん) に返信
> GraphicsのDrawLineメソッドがそれに該当すると思います。
> ただ、グラフィックの乱れは.NETのイベントの流れを掴んでいないのが原因だと感じました。
> DrawLineメソッドを使用して、イベントの流れを一度確認してください。
>

ネタ好き様、ありがとうございます。
確かに、イベントの流れ、掴めていないです。
だから、何回やってみても同じところを堂々巡りして・・・と言う感じでした。
もう一度、イベントの流れを確認してみます。


引用返信 編集キー/
■20881 / inTopicNo.5)  Re[2]: VB6.0のLineメソッドと同じことをVC#ですることは
□投稿者/ ましゃまる (3回)-(2008/06/19(Thu) 09:38:02)
No20871 (やじゅ さん) に返信
> ■No20868 (ましゃまる さん) に返信
>>開発環境:Windows Vista SP1
>>仕様言語:C#(VisualStudio2005使用)
>>VB6.0のLineメソッドと同じ機能を、C#で実現することは出来るでしょうか?
>>
>
> PowerPacks2.0 はどうでしょうか?
> http://hiros-dot.net/CS2005/Control/PowerPacks2.0Menu.htm


やじゅ様、ありがとうございます。
早速、ダウンロードしてみました。

また、結果は報告いたします。

引用返信 編集キー/
■21175 / inTopicNo.6)  Re[3]: VB6.0のLineメソッドと同じことをVC#ですることは
□投稿者/ ましゃまる (4回)-(2008/06/26(Thu) 11:57:04)
結果の報告が遅くなってすみません。
いろいろやってみたのですが、あまり良好な結果は得られずでした。

PowerPackですが、とても便利なツールなのですが、今の状況だとちらつきは改善しませんでした。
次回、何か機会があればぜひ活用したいツールでした。
ありがとうございます。

イベントの流れですが、ちゃんと追っていくと、少しは理解できた気がします。
ダブルバッファーを試してみたり・・・など、いろいろやってみたのですが、1個片付けば、1個問題が発生するという状況で、
決定的な解決策は見出せていない状況です。

でも、トンネルの出口はちょっと見えた気がするので、もう少しがんばってみます。

ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -