Hi guys

I have next problems

I have base class "Shape", it cointains virtual function draw(HWND), I have child class "Line" which contains same function draw(hwnd).
When I draw line in WM_MOUSEMOVE, it is all ok, but when I minimize or change window size, my line disappear
I have vector with pointer to base class

Code:
vector<Shape*>ff;
Shape *f;

 case WM_LBUTTONDOWN:
    {

        IsDrawing = TRUE;

        StartX = LOWORD(lParam);
        StartY = HIWORD(lParam);
        EndX = LOWORD(lParam);
        EndY = HIWORD(lParam);

        switch(iShape)
        {
        case LINE:
                f=new Line();
            break;
        case  RECTANGLE:
            f=new MyRectangle();
            break;
        }

        f->SetBrushWidth(5);
        f->SetColor(RGB(255,0,0));
        f->SetStartCoord(StartX,StartY);
        f->SetEndCoord(EndX,EndY);
        f->SetMode(1);
        f->draw(hWnd);
        break;
    }

  case WM_MOUSEMOVE:
    if( IsDrawing == TRUE )
    {
        f->SetEndCoord(EndX,EndY);
        f->SetMode(2);
        f->draw(hWnd);
        EndX = LOWORD(lParam);
        EndY = HIWORD(lParam);
        f->SetEndCoord(EndX,EndY);
        f->SetMode(2);
        f->draw(hWnd);
    }

    break;

case WM_LBUTTONUP:


    EndX = LOWORD(lParam);
    EndY = HIWORD(lParam);

    f->SetEndCoord(EndX,EndY);
    f->SetMode(3);
    f->draw(hWnd);
    ff.push_back(f);

    IsDrawing = FALSE;
 break;
It is drawing ok, but when change windows size
What I do wrong?