Progress Bar
От: Revenant SpiteFul Россия http://www.darkeregion.narod.ru
Дата: 08.04.02 08:50
Оценка:
Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз:
есть my.h
в нем глобальная процедура void my()
{
}
спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
GREETINGS FROM REVENANT SPITEFUL
Re: Progress Bar
От: Dima2  
Дата: 08.04.02 08:56
Оценка:
Здравствуйте Revenant SpiteFul, Вы писали:

RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не

Неудивительно. Потому что ничего не понятно что ты хочеш.
Re: Progress Bar
От: Dima2  
Дата: 08.04.02 09:00
Оценка:
Здравствуйте Revenant SpiteFul, Вы писали:

RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз:

RS>есть my.h
RS>в нем глобальная процедура void my()
RS>{
RS>}
RS>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
Какую переменную, какой прогресс, какой процесс, что значит котролировать процесс.
Re[2]: Progress Bar
От: Revenant SpiteFul Россия http://www.darkeregion.narod.ru
Дата: 09.04.02 03:07
Оценка:
Здравствуйте Dima2, Вы писали:

D>Здравствуйте Revenant SpiteFul, Вы писали:


RS>>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз:

RS>>есть my.h
RS>>в нем глобальная процедура void my()
RS>>{
RS>>}
RS>>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
D>Какую переменную, какой прогресс, какой процесс, что значит котролировать процесс.


Отвечаю, чтобы все было понятно:
Я хочу тупо и неинтересно изменять значение прогресс бара внутри моей процедуры void MyVoid(){}
которая находится в отдельном *.h файле и линкуется к MyDlg.cpp, вот теперь понятно?
GREETINGS FROM REVENANT SPITEFUL
Re: Progress Bar
От: Gurza Россия  
Дата: 09.04.02 03:41
Оценка:
На ум приходит только одно: Создай дочерний класс от CProgressCtrl и обрабатывай в нём чё хочешь.
Re: Progress Bar
От: Игорь Вартанов Ниоткуда  
Дата: 09.04.02 06:38
Оценка:
Здравствуйте Revenant SpiteFul, Вы писали:

RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..


Если спрашивал в тех же формулировках, что и сейчас, то неудивительно, что никто не ответил (без обид).

RS>спрошу еще раз:

RS>есть my.h
RS>в нем глобальная процедура void my()
RS>{
RS>}
RS>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?

Твоя процедура запускается и делает какую-то полезную работу, в том числе и ведет какие-то счетчики. Вариантов связывания счетчиков с прогрессом может быть несколько:

1. сама процедура рулит каждым прогрессом (зная хэндл его окна), т.е. она устанавливает его range и делает ему set pos (а в простейшем случае step it) в тот момент, когда сочтет это необходимым.
Достоинства:
— простота
— сосредоточение кода
— наличие в элементарных случаях возможности вместо собственного счетчика использовать счетчик прогресса
Недостатки:
— простота :-)
— загрязнение полезного кода интерфейсными проблемами (вытекающая сложность сопровождения)

2. процедура занимается только процессом и счетчиками, при старте устанавливая виндовый таймер, процедура которого и будет двигать прогресс.
Достоинства:
— разъединение полезного и интерфейсного кодов
Недостатки:
— необходимость обеспечения нормальной работы очереди сообщений
— необходимость полагаться на эффективность прокачки очереди сообщений
— низкая приоритетность WM_TIMER

3. тот же случай 2, но вместо виндового таймера вешается собственный поток, который читает счетчики и двигает прогресс.
Достоинства:
— разъединение полезного и интерфейсного кодов
— возможность полного управления всеми аспектами процесса
— независимость от очереди системных сообщений
Недостатки:
— усложнение кода
— необходимость считаться с ограничениями, связанными с многопоточностью


И в любом из этих случаев нужно абсолютно точно представлять, что и как мы считаем :-)).
---
С уважением,
Игорь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.