Win32 перерисовывается после изменения размераC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Win32 перерисовывается после изменения размера

Сообщение Anonymous »


У меня следующие проблемы

У меня есть базовый класс «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(ф); ИсРисование = ЛОЖЬ; перерыв; Рисуется нормально, но при изменении размера окон
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»