Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
189 - Race V
Сегодня, 20:00
 Mefistofel
189 - ?
2.07.2025
 BlitzID
В каком банке открыт…
29.06.2025
 Dan
WoL
23.06.2025
 PapkaI_Igrodel
Привет выжившие
23.06.2025
 PapkaI_Igrodel
MarketGameV4
13.06.2025
 IAmNotARobot
188 - RPG
17.02.2025
 Mefistofel
Galactic Showdown -…
30.01.2025
 Darthman
188 - ?
1.01.2025
 Mefistofel
187 - Bullet Heaven
17.12.2024
 VoroneTZ
Сейчас на сайте
Гостей: 2
На сайте нет зарегистрированных пользователей

Пользователей: 1,795
новичок: BlitzID
Обсуждение «Познание дао малоразмерных програм (вопросы).»
Shirson
Avatar пользователя

Опубликовано 09.10.2006 07:41 (19 лет назад)    #
Хочу избавиться от форм и прочих "прелестей", тянущих программы со старта под 400к.
За основу взял примеры из GDI+, где создаётся окно
begin
wndClass.style := CS_HREDRAW or CS_VREDRAW;
wndClass.lpfnWndProc := @WndProc;
....

описыватся WndProc

function WndProc(Wnd : HWND; message : UINT; wParam : Integer; lParam: Integer) : Integer; stdcall;
var
Handle: HDC;
ps: PAINTSTRUCT;
begin
case message of
WM_PAINT:
...


и в конце программы есть такой цикл:

ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

while(GetMessage(msg, 0, 0, 0)) do
begin
TranslateMessage(msg);
DispatchMessage(msg);
end;
end.

Вроде всё понятно.
Но непонятно другое - как сдлеать, чтобы постоянно вызывалась проыедура отрисовки экрана? Т.е. у меня есть процедура, которая рисует. Как мне сделать, чтобы она постоянно вызывалась и нарисованное её отображалось?
Если я вклиниваю вызов отрисовки своих данных в последний приведенный цикл, то оно вроде как рисует... но только этого невидно, до тех пор, пока onpaint не понадобится (например окно чатично перекрыто). Если самому onpaint вызывать - ничего не происходит.
Может кто сталкивался? Просветите. А то для меня это совсем непривычная тропа и требуется стартовый пинок в нужном направлении.
Race V:Не участвую.
Makar Borisowitch
Avatar пользователя

Опубликовано 09.10.2006 23:18 (19 лет назад)    #
Опять GDI?!!
Мамочка...
Race V:Не участвую.
Soulghai
Avatar пользователя

Опубликовано 10.10.2006 07:21 (19 лет назад)    #
to Shirson
Знаешь, на самом деле в каждой второй ( и даже больше ) конкурсной работе всё что ты перечислил есть =).
Посмотри например мои ( каша, но суть должна быть понятна ), а вообще среднестатистический цикл выглядит так:

while "Флаг октивности проги!" do begin
if PeekMessage(Msg, WinHWND, 0, 0, PM_REMOVE) then //Обработка сообщений
begin
TranslateMessage(gfx.msg);
DispatchMessage(gfx.msg);
end;
if "Если приложение кативно" then begin
MainUpdate();
MainDraw();
FPSUpdate();//считаем фпс
end else Sleep(1);
end;
// Здесь нужно уничтожать свой движок, очищать систему от своих ресурсов и прочее...
end.
Race V:Не участвую.
Shirson
Avatar пользователя

Опубликовано 10.10.2006 07:58 (19 лет назад)    #
Хм.. пасиб, попробую.
Но ответа на вопрос об обновлении изображения в окне всё же нет :)

редакция от Shirson, 10.10.2006 08:31

Race V:Не участвую.
Перейти на форум:
Конкурсы
Открытые конкурсы:
Race V

Старт: 5 июля 2025г.
Финиш: 16 июля 2025г.

Участники: 4
Недавние конкурсы:
 188 - RPG XIII
 187 - Bullet Heaven
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 Все конкурсы
Случайная игра
Голосование

Погнали?

Я в деле!
50% [4 Голосов]
Я сомневаюсь...
38% [3 Голосов]
Мде (
13% [1 Голос]

Голосов: 8
Начало: 04.07.2025 20:01

Для доступа к голосованию, у вас должно быть 10 сообщений на форуме.
 Архив опросов
Мини-чат
Вам необходимо залогиниться.

Архив чата

27,305,088 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.