Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > Visual C++
Перезагрузить страницу Полноценное Windows-приложение
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
daniilpetrov daniilpetrov вне форума
Member
 
Аватар для daniilpetrov
 
Сообщений: 213
Сказал(а) спасибо: 33
Поблагодарили 3 раз(а) в 2 сообщениях
Регистрация: 10.06.2011
Адрес: Россия
По умолчанию Полноценное Windows-приложение - 30.10.2014, 01:50

Огромный вопрос к многоуважаемым знатокам. Пишу свой игровой движок, с точки зрения приложения сделал уже немало:

· Мультипоточное игровое ядро x64 написано на Visual C++ 2013.
· Для вывода графики используется библиотека OpenGL.
· Для вывода звука используется библиотека OpenAL.
· Для опроса клавиатуры, мыши и джойстика используется библиотека DirectInput.
· Для опроса геймпада с обратной связью используется библиотека XInput.
· Для хранения настроек приложения используются функции чтения/записи ini-файла.
· Для чтения игровых настроек и скриптов используется скриптовый язык Lua.
· Для запуска программы с ключами распознаются аргументы командной строки.
· Приложение поддерживает русский и английский языки, возможно больше.

Но мне хотелось бы добить тему, создав полноценное окно Методы GLUT здесь не подходят, так как накладывают массу ограничений, а суть в следующем, если оставлять проверку событий так, как это создаётся непосредственно в Win32:
cpp Код:
while (GetMessage(&msg, NULL, 0, 0))
{
    if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
окно нормально обрабатывается, перетаскивается за форму, сворачивается, разворачивается и меняет свои размеры, НО, здесь уже идёт событийно-ориентированный процесс и, пока поьзователь ничего не делает, TranslateAccelerator замыкает код на себе, не давая работать приложению дальше, А если использовать просто
cpp Код:
while (!IniConfig.CloseApp)
{
    if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    else
    {
приложение работает прекрасно, но окно остаётся глухим к действиям пользователя. Если кто знает лаконичное решение данного вопроса, помогите, пожалуйста!!!!
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написать Windows приложение в С++ opanki Вопросы начинающих программистов 2 08.03.2011 16:26
Windows Mobile 5.0 c помощью чего написать приложение Dmit Вопросы начинающих программистов 4 04.02.2011 20:27
Брандмауэр Windows блокирует написанное приложение Pr0phet .NET 4 08.01.2011 13:45
Приложение gps-без gps ТимурХасанов Программы и софт 2 28.09.2010 02:28
Windows Mobile как перенести приложение bas524 Windows CE 0 06.02.2008 20:35
Перенос приложение на КПК Leon .NET 2 11.12.2007 14:25
Консольное приложение как сервис Windows Wormario Visual C++ 1 03.04.2007 18:30
Скомпилированное приложение VS8 приложение по Windows XP Pro SP2 не запускается st_user Visual C++ 1 31.08.2006 19:31
Как писать windows приложение imported_Alpha C++ Builder 6 27.04.2006 05:16
На чем лучше создать приложение под Windows Plutonium32 Вопросы начинающих программистов 2 24.05.2005 05:58
Как встроить приложение в проводник explorer Windows Mike[114] C++ Builder 4 17.09.2004 10:53
Как сделать приложение сервисом Windows demon_rus C++ Builder 7 25.09.2003 13:16



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов