Я выполняю пользовательскую обработку WM_PAINT и WM_ERASEBKGD в переопределении WndProc в элементе управления.Как правильно обрабатывать WM_PAINT, получая постоянную перекраску
protected override void WndProc(ref Message m)
{
if (m.Msg == 0xF)
{
// [Draw using stored hDC]
m.Result = (IntPtr)1;
}
else if (m.Msg == 0x14)
{
m.Result = (IntPtr)1;
}
else
base.WndProc(ref m);
}
Он отлично работает, за исключением того, что называется постоянно, около 300 раз в секунду, и если я позволяю основание для того чтобы справиться с этим, она вызывается один раз. Что я оставляю?
Чтобы сообщить Windowd, что окно окрашено, вы должны позвонить либо BeginPaint (стандартный путь), либо ValidateRect (если вы не используете стандартный цикл рисования, который, по-видимому, не так, по причинам, которые не объясняются). –