Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya dapat menggantung dan meneruskan lukisan dengan cekap untuk kawalan .NET dan anak -anaknya?

Bagaimanakah saya dapat menggantung dan meneruskan lukisan dengan cekap untuk kawalan .NET dan anak -anaknya?

Linda Hamilton
Lepaskan: 2025-01-30 10:56:09
asal
127 orang telah melayarinya

How Can I Efficiently Suspend and Resume Painting for a .NET Control and Its Children?

mengoptimumkan .net kawalan mengecat semula dengan wm_setredraw

. NET pemaju sering perlu berhenti semula sementara dalam kawalan dan anak -anaknya semasa kemas kini yang luas. Walaupun

dan SuspendLayout mengurus susun atur, mereka tidak sepenuhnya menindas semula. ResumeLayout

Penyelesaian wm_setredraw

Mesej

, dihantar ke pemegang tetingkap kawalan, menyediakan penyelesaian yang mantap. Parameter Boolean mengawal redrawing: WM_SETREDRAW melumpuhkan, dan false membolehkannya. true

Melaksanakan Kaedah Dusigrawing dan Resumedrawing

Kelas yang diselaraskan ini merangkumi fungsi:

<code class="language-csharp">public static class ControlPainting
{
    [DllImport("user32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int wMsg, bool wParam, int lParam);

    private const int WM_SETREDRAW = 11;

    public static void SuspendPainting(Control parent)
    {
        SendMessage(parent.Handle, WM_SETREDRAW, false, 0);
    }

    public static void ResumePainting(Control parent)
    {
        SendMessage(parent.Handle, WM_SETREDRAW, true, 0);
        parent.Refresh();
    }
}</code>
Salin selepas log masuk

Contoh Penggunaan

untuk mengelakkan mengecat semula:

<code class="language-csharp">ControlPainting.SuspendPainting(myControl);
// ... perform modifications ...
ControlPainting.ResumePainting(myControl);</code>
Salin selepas log masuk

bacaan selanjutnya

Untuk maklumat yang lebih mendalam, rujuk sumber-sumber ini:

  • c# jitter
  • menggantung susun atur

Atas ialah kandungan terperinci Bagaimanakah saya dapat menggantung dan meneruskan lukisan dengan cekap untuk kawalan .NET dan anak -anaknya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan