![]() |
|
|
![]()
|
|
| Krio |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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()) но ничего не помогло! Помогите сделать её активной! Я никак понять не могу! |
|||
|
||||
| Bukmop |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
MyFunc() нужно в отдельный поток вынести.
|
|||
|
||||
| Krio |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
А можно поподробнее... |
|||
|
||||
| Bukmop |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 1.6.2006 Где: Москва Репутация: 2 Всего: 3 |
После запуска MyFunc() и до её окончания ты не узнаешь о других нажатиях на кнопки, т.к. выполняется твоя функция. Многопоточность не очень простое дело. Более того, тянет за собой синхронизацию потоков. Подробнее в двух словах не скажешь, здесь без теории не обойтись, придётся почитать литературу. |
|||
|
||||
| Krio |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 27.5.2006 Репутация: нет Всего: нет |
Почитал разобрался сделал CreateThread со своей функцией и всё заработало!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |