Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз:
есть my.h
в нем глобальная процедура void my()
{
}
спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
Здравствуйте Revenant SpiteFul, Вы писали:
RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не
Неудивительно. Потому что ничего не понятно что ты хочеш.
Здравствуйте Revenant SpiteFul, Вы писали:
RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз: RS>есть my.h RS>в нем глобальная процедура void my() RS>{ RS>} RS>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
Какую переменную, какой прогресс, какой процесс, что значит котролировать процесс.
Здравствуйте Dima2, Вы писали:
D>Здравствуйте Revenant SpiteFul, Вы писали:
RS>>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..спрошу еще раз: RS>>есть my.h RS>>в нем глобальная процедура void my() RS>>{ RS>>} RS>>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс? D>Какую переменную, какой прогресс, какой процесс, что значит котролировать процесс.
Отвечаю, чтобы все было понятно:
Я хочу тупо и неинтересно изменять значение прогресс бара внутри моей процедуры void MyVoid(){}
которая находится в отдельном *.h файле и линкуется к MyDlg.cpp, вот теперь понятно?
Здравствуйте Revenant SpiteFul, Вы писали:
RS>Неделю назад я спрашивал про прогресс бар...никакого разумного решения никто не предложил(без обид)..
Если спрашивал в тех же формулировках, что и сейчас, то неудивительно, что никто не ответил (без обид).
RS>спрошу еще раз: RS>есть my.h RS>в нем глобальная процедура void my() RS>{ RS>} RS>спрашивается,как вклинить в эту процедуру переменнную прогресс и контролировать процесс?
Твоя процедура запускается и делает какую-то полезную работу, в том числе и ведет какие-то счетчики. Вариантов связывания счетчиков с прогрессом может быть несколько:
1. сама процедура рулит каждым прогрессом (зная хэндл его окна), т.е. она устанавливает его range и делает ему set pos (а в простейшем случае step it) в тот момент, когда сочтет это необходимым.
Достоинства:
— простота
— сосредоточение кода
— наличие в элементарных случаях возможности вместо собственного счетчика использовать счетчик прогресса
Недостатки:
— простота :-)
— загрязнение полезного кода интерфейсными проблемами (вытекающая сложность сопровождения)
2. процедура занимается только процессом и счетчиками, при старте устанавливая виндовый таймер, процедура которого и будет двигать прогресс.
Достоинства:
— разъединение полезного и интерфейсного кодов
Недостатки:
— необходимость обеспечения нормальной работы очереди сообщений
— необходимость полагаться на эффективность прокачки очереди сообщений
— низкая приоритетность WM_TIMER
3. тот же случай 2, но вместо виндового таймера вешается собственный поток, который читает счетчики и двигает прогресс.
Достоинства:
— разъединение полезного и интерфейсного кодов
— возможность полного управления всеми аспектами процесса
— независимость от очереди системных сообщений
Недостатки:
— усложнение кода
— необходимость считаться с ограничениями, связанными с многопоточностью
И в любом из этих случаев нужно абсолютно точно представлять, что и как мы считаем :-)).