Поиск:

Ответ в темуСоздание новой темы Создание опроса
> цикл обработки сообщений в MFC приложении, как его редактировать? 
:(
    Опции темы
ano360
Дата 13.2.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я создал приложение MFC:
File->New->Project->MFC->MFC Application

и пытался найти такие известные строчики:
Код
    
        while (GetMessage(&msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }

однако не нашел...значит они куда то убраны подальше от глаз...
тогда каким образом можно их редактировать? вставить в основной цикл программы свои строчки:
Код

в частности я хотел реализовать чтобы приложение не зависало при выполнении длительных операций
я планировал разбить их на части и вставить выполненние по флагу в этот цикл...


Это сообщение отредактировал(а) ano360 - 13.2.2009, 10:19


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
Earnest
Дата 13.2.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

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



Такого кода в MFC-приложении вообще нет. Главный цикл реализован значительно сложнее. Можешь поискать в коде MFC CWinThread::Run.
В принципе, то что ты хочешь сделать можно через переопределение виртуальной функции PumpMessage (на уровне приложения). Она вызывается для извлечения и пересылки сообщения из очереди. Но в цикле простоя она не вызывается, так что придется еще и в OnIdle что-то делать. В общем, это плохой вариант.
Хороший вариант - реализовать длительную обработку в отдельном потоке.


--------------------
...
PM   Вверх
ano360
Дата 13.2.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



 хО хО хО.....
значит будет искать другие пути... спасибо за оперативный ответ

для меня слова "отдельный поток" примерно тоже что ядерный синтез...

может дадите сслыки на темы где это обсуждалось? а то такое чувство что поиск на форуме темы вообще рандомно выдает последние месяца 2-3(раньше все нормально было вроде...)

Это сообщение отредактировал(а) ano360 - 13.2.2009, 11:03


--------------------
Жизнь есть.
PM MAIL WWW ICQ   Вверх
voov
Дата 13.2.2009, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Патамушта мы пилоты
**


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

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



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


 




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


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

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