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
191 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:

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();
    }
}
Salin selepas log masuk

Contoh Penggunaan

untuk mengelakkan mengecat semula:

ControlPainting.SuspendPainting(myControl);
// ... perform modifications ...
ControlPainting.ResumePainting(myControl);
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!

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