![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| serega3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.8.2012 Репутация: нет Всего: нет |
Всем привет. Начинаю изучать WinAPI и столкнулся с такой проблемой: в книге сказано, что в бесконечном цикле, например при создании прогресс бара на чтение файла, чтобы программа не зависала в ожидании конца файла, нужно добавлять команду на проверку новых сообщений PeekMessage(параметры). Я передаю в нее ссылку на структуру MSG и дескриптор данного окна, прогресс бар создаю как новое окно, но при запуске, программа подвисает и прогресс бар не обновляется. Что делаю не так, очень нужна помощь. Часть кода цикла, остальная стандартная для окна и работоспобна.
И еще вопрос. Данные компоненты отображаются в стиле Windows XP, а что нужно для отображения в стиле Windows7 (имею ввиду кнопки, прогресс бар и т.д.), может библиотека. Компилятор я использую Borland C++ Builder 6, пробовал данный код в Visual Studio, но он ругается: передача в функции типа char, а должен быть LPCSTR, пробовал разные методы из интернета типа _T(), не помогало. Спасибо всем кто чем-либо сможет помочь |
|||
|
||||
| korian |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 4 Всего: 17 |
где-то так: (не проверял)
я б сказал, что это плохой вариант, для решения подобной проблемы break нету в WM_CREATE из-за Sleep(50); так же возможно из-за CreateWindow в WM_PAINT, не знаю как оно там на это реагирует, но это неправильно
ключевые слова для поиска - windows manifest надо знать строку на которую ругается Это сообщение отредактировал(а) korian - 19.8.2012, 11:26 |
||||
|
|||||
| serega3 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 18.8.2012 Репутация: нет Всего: нет |
Бессонная ночь и кофе сделали свое дело. Отдельное спасибо korian, действительно все дело было в манифесте, скачал, скомпилил, теперь интерфейс windows7. Если вдруг есть еще такие же как я, то манифест для windows7 взял отсюдаСсылка на манифест windows7 (второй пост), там нужны два файла: win7.rc и win7.xml, а способ установки в проект отлично описан здесь: установка манифеста windwows7 в проект. По поводу подвисаний и не рабочего прогресс бара: я поставил обработку при нажатии на кнопку, но кнопка нажималась один раз, поэтому все работало, но окно не перерисовывалось. Добавив свое сообщение и в цикле посылать его, окно стало обновляться и вместе с ним прогресс бар и текстовые строки.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |