Программирование для windows. Как правильно управлять программой? Winapi
У програм с GUI есть главный цикл.
Для игр элементарный
while(1)
{
}
цикл работает постоянно, отсюда нагрузка на процессор.
у обычной windows программы там по другому.
MSG msg;
while (GetMessage(&msg, nullptr, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
видимо всё работает только когда окно получает какое либо сообщение.
соответственно, нагрузки на процессор почти нет.
Вот у меня есть квадрат (функция FillRect).
Я хочу по клику мышки, схватить его, и переместить в другое место.
Я добавил обработку перемещения в WM_INPUT. Но это не годится так как программа не рисует то что сейчас произошло (перемещаю в одну сторону, всё окей, начинаю перемещать в другую, квадрат всё ещё чуть перемещается по старинке).
А что если я захочу вставить анимацию в угол окна? Нужно делать обновление со временем, чтобы была анимация.
Куда это всё девать? Как делают нормальные проги чтобы всё и рисовалось, и реагировало правильно, и чтобы 0-1% CPU было в диспетчере задач?
> цикл работает постоянно, отсюда нагрузка на процессор.
Без слипа подобных циклов не делают, пустой цикл со слипом не создаёт загрузки ядер.
А почему WM_INPUT а не WM_MOUSEMOVE?
- Посоветуйте программы для Windows, которые позволяют управлять другим компьютером под Windows через локальную сеть Что-то наподобие TeamViewer, но чтобы работала именно через LAN, а не интернет. Есть какие варианты кроме стандартного сервиса RDP в Windows?
- Как управлять мышью, как на Windows на Android x86 в играх? Как играть в такие игры как pubg как на Windows, чтобы мышь работала так же?
- Научите как правильно поставить Винду 10 с флешки и как правильно качать драйвера В установке винды я чайник, была первая неудачная попытка
- Какая связь между WinAPI, файлом windows.h и библиотекой DLL (kernel32.dll, user32.dll и так далее)? Что находится в файлах (kernel32.dll, user32.dll и так далее) и файле windows.h, какая связь между ними в контексте WinAPI