Win32 перерисовывается после изменения размера ⇐ C++
-
Anonymous
Win32 перерисовывается после изменения размера
У меня следующие проблемы
У меня есть базовый класс «Shape», он содержит виртуальную функцию draw(HWND), у меня есть дочерний класс «Line», который содержит ту же функцию draw(hwnd).
Когда я рисую линию в WM_MOUSEMOVE, все в порядке, но когда я сворачиваю или меняю размер окна, моя линия исчезает
Что мне нужно сделать?
У меня есть вектор с указателем на базовый класс вектор фф; Форма *f;
случай WM_LBUTTONDOWN: { ИсРисование = ИСТИНА; StartX = LOWORD(lParam); StartY = HIWORD(lParam); EndX = LOWORD(lParam); EndY = HIWORD(lParam); переключатель (iShape) { корпус ЛИНИЯ: е = новая строка (); перерыв; корпус ПРЯМОУГОЛЬНИК: е = новый MyRectangle (); перерыв; } е->SetBrushWidth(5); е->SetColor(RGB(255,0,0)); е->SetStartCoord(StartX,StartY); е->SetEndCoord(EndX,EndY); е->SetMode(1); е-> рисовать (hWnd); перерыв; } случай WM_MOUSEMOVE: если (IsDrawing == ИСТИНА) { е->SetEndCoord(EndX,EndY); е->SetMode(2); е-> рисовать (hWnd); EndX = LOWORD(lParam); EndY = HIWORD(lParam); е->SetEndCoord(EndX,EndY); е->SetMode(2); е-> рисовать (hWnd); } перерыв; случай WM_LBUTTONUP: EndX = LOWORD(lParam); EndY = HIWORD(lParam); е->SetEndCoord(EndX,EndY); е->SetMode(3); е-> рисовать (hWnd); ff.push_back(ф); ИсРисование = ЛОЖЬ; перерыв; Рисуется нормально, но при изменении размера окон
У меня следующие проблемы
У меня есть базовый класс «Shape», он содержит виртуальную функцию draw(HWND), у меня есть дочерний класс «Line», который содержит ту же функцию draw(hwnd).
Когда я рисую линию в WM_MOUSEMOVE, все в порядке, но когда я сворачиваю или меняю размер окна, моя линия исчезает
Что мне нужно сделать?
У меня есть вектор с указателем на базовый класс вектор фф; Форма *f;
случай WM_LBUTTONDOWN: { ИсРисование = ИСТИНА; StartX = LOWORD(lParam); StartY = HIWORD(lParam); EndX = LOWORD(lParam); EndY = HIWORD(lParam); переключатель (iShape) { корпус ЛИНИЯ: е = новая строка (); перерыв; корпус ПРЯМОУГОЛЬНИК: е = новый MyRectangle (); перерыв; } е->SetBrushWidth(5); е->SetColor(RGB(255,0,0)); е->SetStartCoord(StartX,StartY); е->SetEndCoord(EndX,EndY); е->SetMode(1); е-> рисовать (hWnd); перерыв; } случай WM_MOUSEMOVE: если (IsDrawing == ИСТИНА) { е->SetEndCoord(EndX,EndY); е->SetMode(2); е-> рисовать (hWnd); EndX = LOWORD(lParam); EndY = HIWORD(lParam); е->SetEndCoord(EndX,EndY); е->SetMode(2); е-> рисовать (hWnd); } перерыв; случай WM_LBUTTONUP: EndX = LOWORD(lParam); EndY = HIWORD(lParam); е->SetEndCoord(EndX,EndY); е->SetMode(3); е-> рисовать (hWnd); ff.push_back(ф); ИсРисование = ЛОЖЬ; перерыв; Рисуется нормально, но при изменении размера окон
Мобильная версия