Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ProgressBar и обработчик кнопки, Не срабатывет кнопка 
V
    Опции темы
Krio
Дата 27.11.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Здравствуйте.
Возникла трудность такого плана: Есть функция по считыванию файла и вставления через определенные моменты служебной инфы! Сделал оболочку выбора различных параметров и надо добавить ProgressBar с кнопкой остановить!
Я нарисовал Dialog добавил сам CProgressCtrl и 2 кнопочки Start и Stop. Далее на обработчик Start вставил саму функцию считывания файла(назовём MyFunc()), сдедал кнопочку Start неактивной через EnableWindow(false)( Чтоб лишний раз не нажали) и последним параметром в MyFunc() передаю указатель на текущее окно так MyFunc(...,this), чтобы когда уже считывался блок( например по 1024 кб через ReadFile) сдвигать полоску ПрогрессБара на позицию! Всё замечательно работает! НО: Неактивна кнопочка прекратить! Т.е невозможно на неё нажать, чтобы возвести флаг прерывания в 1, и, затем в цикле считывания файла по блокам, проверить на остановку считывания и последующий выход!
Как только не пробовал и ShowWindow(SW_SHOW) и WS_VISIBLE и BAR->m_TermButton.EnableWindow(true)( уже в самой MyFunc())
но ничего не помогло! Помогите сделать её активной! Я никак понять не могу!
PM MAIL   Вверх
Bukmop
Дата 27.11.2007, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.6.2006
Где: Москва

Репутация: 2
Всего: 3



MyFunc() нужно в отдельный поток вынести.

PM MAIL   Вверх
Krio
Дата 27.11.2007, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Цитата(Bukmop @ 27.11.2007,  21:18)
MyFunc() нужно в отдельный поток вынести.

А можно поподробнее...
PM MAIL   Вверх
Bukmop
Дата 28.11.2007, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 1.6.2006
Где: Москва

Репутация: 2
Всего: 3




После запуска MyFunc() и до её окончания ты не узнаешь о других нажатиях на кнопки, т.к. выполняется твоя функция.
Многопоточность не очень простое дело. Более того, тянет за собой синхронизацию потоков. Подробнее в двух словах не скажешь, здесь без теории не обойтись, придётся почитать литературу.
PM MAIL   Вверх
Krio
Дата 1.12.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 27.5.2006

Репутация: нет
Всего: нет



Почитал разобрался сделал CreateThread со своей функцией и всё заработало!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.