ホームページ >バックエンド開発 >C++ >Windows フォームでカスタム Draw メソッドを PictureBox の Paint イベントと統合する方法

Windows フォームでカスタム Draw メソッドを PictureBox の Paint イベントと統合する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-21 11:32:10748ブラウズ

How to Integrate a Custom Draw Method with a PictureBox's Paint Event in Windows Forms?

Windows フォームでのカスタム描画と PictureBox のペイント イベントの統合

Windows フォームの PictureBox コントロールは、画像を表示する便利な方法を提供します。 ただし、カスタム描画メソッドを PictureBox の Paint イベントと効率的に統合するには、慎重な検討が必要です。このガイドでは、カスタム描画ロジックと Paint イベント ハンドラーをシームレスに組み合わせる方法について説明します。

Paint イベントとカスタム描画メソッドを理解する

コントロールの再描画 (サイズ変更、画像の変更など) が必要になるたびに、PictureBox の Paint イベントが発生します。 カスタム描画メソッド (Circle() など) は描画ロジックをカプセル化し、Bitmap オブジェクトを返す可能性があります。

統合戦略

カスタム描画メソッドを統合するには、次の 2 つの主なアプローチが存在します。

1.コントロールへの直接描画:

このアプローチでは、e.Graphics イベント ハンドラー内の Paint オブジェクトを使用して、PictureBox に直接描画します。 変更は再描画後も持続します。

<code class="language-csharp">private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    e.Graphics.DrawEllipse(Pens.Red, new Rectangle(3, 4, 44, 44));
    // ... other drawing operations ...
}</code>

2.画像への描画:

このメソッドは、PictureBox の基礎となる Image プロパティを変更します。 変更はビットマップ自体を変更するため、永続的になります。 Graphics.FromImage(pictureBox1.Image) を使用して描画用の Graphics オブジェクトを作成し、pictureBox1.Refresh() を呼び出して表示を更新します。

<code class="language-csharp">void drawIntoImage()
{
    using (Graphics G = Graphics.FromImage(pictureBox1.Image))
    {
        G.DrawEllipse(Pens.Orange, new Rectangle(13, 14, 44, 44));
        // ... other drawing operations ...
    }
    pictureBox1.Refresh();
}</code>

最適なアプローチの選択

最適なアプローチは、お客様の特定のニーズによって異なります。 直接描画は、PictureBox 上で直接、即時かつ永続的な変更が必要な場合に適しています。 基礎となるビットマップを変更する場合は、イメージへの描画を推奨します。これにより、複数回再描画した後でも変更が確実に保持されます。

以上がWindows フォームでカスタム Draw メソッドを PictureBox の Paint イベントと統合する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。