Статус:
Offline
Реєстрація: 28.01.2009
Повідом.: 176
Реєстрація: 28.01.2009
Повідом.: 176
- 🔴 06:33 Повітряна тривога в Харків.обл.
- #1
Помогите разобратся в оконном приложени виндовс
Задача:
Написать программу, позволяющую рисовать линии. Нажатие левой кнопки мыши определяет первую точку линии. Не отпуская кнопки пользователь перемещает мышь во вторую точку отрезка. Отпускание кнопки приводит к фиксации второй точки линии. Во время движения с нажатой кнопкой мыши, линия должна перерисовываться.
Я все смастерил, НО:
1) Не получается нарисовать линию с того места где кликнул мышь, в то где находится в данный момент: кажется, что начало лини находится далеко за пределами окна (хотя должно быть иначе), не смотря на то, что я запоминаю координаты нахождения мыши во время клика в переменные:
x=LOWORD(lParam);
y=HIWORD(lParam);
а потом начинаю рисовать с того места:
MoveToEx(hdc,x,y,NULL);
LineTo(hdc, LOWORD(lParam),HIWORD(lParam));
2) Все очищается, если свернуть и развернуть окно (я рисую линию, когда приходит сообщение WM_MOUSEMOVE, а когда приходит WM_PAINT ничего не делаю)
Подскажите, помогите разобратся
По желанию могу выложить весь листинг
Задача:
Написать программу, позволяющую рисовать линии. Нажатие левой кнопки мыши определяет первую точку линии. Не отпуская кнопки пользователь перемещает мышь во вторую точку отрезка. Отпускание кнопки приводит к фиксации второй точки линии. Во время движения с нажатой кнопкой мыши, линия должна перерисовываться.
Я все смастерил, НО:
1) Не получается нарисовать линию с того места где кликнул мышь, в то где находится в данный момент: кажется, что начало лини находится далеко за пределами окна (хотя должно быть иначе), не смотря на то, что я запоминаю координаты нахождения мыши во время клика в переменные:
x=LOWORD(lParam);
y=HIWORD(lParam);
а потом начинаю рисовать с того места:
MoveToEx(hdc,x,y,NULL);
LineTo(hdc, LOWORD(lParam),HIWORD(lParam));
2) Все очищается, если свернуть и развернуть окно (я рисую линию, когда приходит сообщение WM_MOUSEMOVE, а когда приходит WM_PAINT ничего не делаю)
Подскажите, помогите разобратся
По желанию могу выложить весь листинг