Jak zmodyfikować poniższy kod by móc rysować po RichEdicie tak jak np. mamy w Paincie, że mamy pasek przewijania i jak przewiniemy to jest wszystko ok, mi w poniższym kodzie wszystko ładnie wygląda dopóki dopóty nie przewinie się paskiem przewijania, wtedy rysunek się rozwala. Oczywiście stosuję tutaj sub(super)classing RichEdita.

LRESULT CALLBACK NewRichEditProcedure(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) 
{  
    switch(msg) 
    { 
       case WM_PAINT: 
       { 
       PAINTSTRUCT ps; 
       POINT staryPunkt; 
       HPEN Olowek; 
       HDC hdcEdit = BeginPaint(hEdit, &ps); 
       Olowek=CreatePen(PS_SOLID,1,RGB(0,0,0)); 
       SelectObject(hdcEdit,Olowek); 
       MoveToEx(hdcEdit,20,20,&staryPunkt); 
       LineTo(hdcEdit,20,700); 
       MoveToEx(hdcEdit,200,60,&staryPunkt); 
       LineTo(hdcEdit,500,400); 
       DeleteObject(Olowek); 
       EndPaint(hEdit,&ps); 
       } 
       break; 
       default: break;              
    } 
    return CallWindowProc(OldProcedure, hWnd, msg, wParam, lParam); 
}