Мир программирования

 


Найти: на:


Меню
Партнеры
Счетчики
Реклама

Direct Draw по русски
Создание класса приложения


Здесь мы опишем класс окна и запустим его...

begin

instance :=GetModuleHandle(nil);

with WindowClass do

begin

style:=CS_HRedraw or CS_VRedraw;

Lpfnwndproc:=@windowproc;

Hinstance:=Instance;

HbrBackground:= color_btnface;

LpszClassName:='DXF';

Hcursor:=LoadCursor(0,IDC_ARROW);

end; //Здесь мы описали с Вами класс нашего окна.

RegisterClass (WindowClass); // Регистрируем его в системе

 

Handle:=CreateWindowEx (0,'DXF',{Здесь можно написать заголовок нашей программки},WS_POPUP, 5,5, GetSystemMetrics (SM_CXSCREEN), GetSystemMetrics (SM_CYSCREEN),0,0,instance, nil);// Ну вот мы и добились желаемого

UpdateWindow (Handle);

.....

end.

Запустив эту программку Вы визуально ничего не увидите, однако проверить то, что она вообще существует можно посмотрев задачи, выполняемые Windows. Самый простой способ Alt+Ctrl+Del. Кроме того мы так и не позаботились о том, чтобы удалить из памяти созданное окно. Для того, чтобы наша программка так скоропостижно не закончилась, необходимо её зациклить, т.е. написать такой код, успешный (!!!) выход из которого может осуществить любой (!!!) пользователь. Для этого будем вызывать функцию WindowProc в которой отфильтруем только нужные нам сообщения системы.

function windowproc (Hwn,msg,wpr,lpr: longint): longint; stdcall;

begin

result:=defwindowproc(hwn,msg,wpr,lpr);

if msg=wm_destroy then

begin

FreeAll ;

Halt;

end;

if msg=wm_KeyDown then

begin

if wpr=VK_ESCAPE then begin //При нажатии клавиши Escape приложение

FreeAll ; // умрет.

Halt;

end;

end;

end;

Теперь по быстрому состряпаем зацикливание и все будет готово для дальнейших действий!

Перед магическим словом end. Запишем следующее:

begin

. . . . . .

while true do

begin

translatemessage(msg);

dispatchmessage (msg);

application.processmessages;

end;

end.

Вот и все (почти что). Далее мы переходим к самому интересному. Как создавать и использовать поверхности для вывода графики.

Опрос

Конкурсы
Реклама

 

Web дизайн: Бурлаков Михаил    

Web программирование: Бурлаков Михаил

Используются технологии uCoz