Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.07;
Скачать: CL | DM;

Вниз

Как сделать однократную перерисовку формы при Resiz e   Найти похожие ветки 

 
smaller   (2006-12-19 18:24) [0]

Как сделать, чтобы при изменениеии размера формы (Resize)  перерисовка расположенных на ней компонент происходила только один раз - в момент отжатия кнопки мыши? (Второй раз щелкать форму не хотелось бы, а событие OnMouseUp при прекращении Resiz"a по-видимому не генерируется?


 
Eraser ©   (2006-12-19 18:25) [1]

> [0] smaller   (19.12.06 18:24)

не совсем понял вопрос, но возможно InvalidateRect поможет.


 
smaller   (2006-12-19 18:50) [2]

Вряд ли.
Мне нужно, чтобы форма перерисовывалась в тот момент, когда опускается кнопка мыши, которая была нажата во время процесса изменения  размера формы, то есть когда курсор был "зацеплен" за край формы. На мой взгляд, проблема в том, что нельзя поймать это событие - оно не оценивается средой как событие OnMouseUp. Это я знаю потому, что если я помещаю свой отрисовщик в OnMouseUp, то ни до ни после изменения размера формы ничего не происходит.


 
Eraser ©   (2006-12-19 18:59) [3]

> [2] smaller   (19.12.06 18:50)

отрисовщик должен выполнятся только в OnPaint (WM_PAINT).


 
Desdechado ©   (2006-12-19 19:00) [4]

У винды есть настройка рабочего стола такая.


 
smaller   (2006-12-19 19:19) [5]

Мой отрисовщик нормально работает если я помещаю его в MyForm.OnMouseUp и просто щелкаю по форме, но не работает, если я отпускаю кнопку мыши, нажатую во время изменения размера формы -
(а мне как раз последнее срабатывание то и нужно) - вот в чем проблема!


 
Anatoly Podgoretsky ©   (2006-12-19 19:53) [6]

> smaller  (19.12.2006 18:24:00)  [0]

Resize не оперирует кнопками, а только изменением размера.


 
Desdechado ©   (2006-12-19 20:19) [7]

FormResize?


 
smaller   (2006-12-19 20:29) [8]

"- Resize не оперирует кнопками, а только изменением размера."

Да, вот это-то и жалко. А нельзя ли все-таки как-нибудь поймать событие, показыващее окончание Resize, и по этому событию запустить отрисовку формы?


 
Anatoly Podgoretsky ©   (2006-12-19 20:42) [9]

> smaller  (19.12.2006 20:29:08)  [8]

Resize событие бесконечное.


 
smaller   (2006-12-20 10:57) [10]

В том смысле, что это некий цикл, выполняемый непрерывно, пока кнопка мыши нажата. А отжатие кнопки мыши можно как-нибудь поймать или нет?


 
Anatoly Podgoretsky ©   (2006-12-20 12:03) [11]

> smaller  (20.12.2006 10:57:10)  [10]

Только не в Resize, он мышками не заведует, его интересует только изменение размеров.


 
smaller   (2006-12-20 12:16) [12]

Стало быть, если нужно не просто отжатие кнопки мыши,
а отжатие кнопки которым заканчивается измение размера формы...
то такая задача не имеет решения ?


 
smaller   (2006-12-20 12:53) [13]

Вот что попробую - запущу в onResize поток, в котором будет ожидаться отжатие кнопки мыши, и по нему сделаю перерисовку формы.

Только вот пока не знаю, как в потоке лучше уловить отжатие кнопки...
Не подскажете?


 
Anatoly Podgoretsky ©   (2006-12-20 12:55) [14]

> smaller  (20.12.2006 12:16:12)  [12]

Отжатие кнопки не заведует Resize


 
smaller   (2006-12-20 13:21) [15]

Ну так я вроде придумал как это обойти - мне onResize нужно только для того, чтобы запустить поток, где будет проверяться, отжата кнопка мыши или нет.  
Только я не знаю, как поймать проверять состояние кнопки мыши в потоке- может применить какие-нибудь WinApi процедуры ?



Страницы: 1 вся ветка

Текущий архив: 2007.01.07;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
15-1166476567
ArtemESC
2006-12-19 00:16
2007.01.07
Какая функция в библиотеках С переводит число в строку?


2-1166200832
Просто Коля
2006-12-15 19:40
2007.01.07
Изменение рпзмеров Контроллов


15-1166425455
Ganses
2006-12-18 10:04
2007.01.07
Пределы Paradox-a


4-1156109270
Вуук
2006-08-21 01:27
2007.01.07
Как отловить нажатия клавиш для всех процессов!?


2-1166449505
apak
2006-12-18 16:45
2007.01.07
Синхронное листание ListBox