Четверг, 18.04.2024, 21:28Главная | Регистрация | Вход

Меню сайта

Форма входа

Приветствую Вас Странник!

Друзья сайта

Наш опрос

Какая у вас операционная система?
Всего ответов: 95

Статистика

Пишем программу на чистом WinAPI - ФорумПишем программу на чистом WinAPI - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Последние обновления форума

  • Какой антивирус лучше? (1)
  • Орда (5)
  • Орда 2 (3)
  • Canvas Studio =)) (0)
  • aimp (0)
  • Вариант запустить старые игры на Windows XP (37)
  • Кто что слушает? (0)
  • ЧИТКА (4)
  • Fire Wheels (4)
  • RusFaq (0)
    • Страница 1 из 1
    • 1
    Форум » Программирование игр » Delphi » Пишем программу на чистом WinAPI (Создание формы!)
    Пишем программу на чистом WinAPI
    KostiaДата: Суббота, 23.02.2008, 08:51 | Сообщение # 1
    Киллер
    Группа: Проверенные
    Сообщений: 39
    Репутация: 1
    Статус: Offline
    В этой теме я постараюсь пролить свет на то, как создаются окна с помощью WinAPI функций!
    Главным преимуществом созданием программ на чистом WinAPI, является размер программы, около 15 kb занимает пустая форма на WinAPI.
    Начнем с того, что избавимся от стандартной формы:
    View->Project Manager->Unit1->Remove->Ctrl+F12->Project1->OK
    Перед вами появился такой код:

    Code
    program Project1;
    uses
           Forms;
    {$R *.res}
    begin
           Application.Initialize;
           Application.Run;
    end.

    Измените этот год на нижеприведенный:

    Code
    program Project1;
    uses
           Windows, Messages;
    var
          wc   : TWndClassEx; // окно
          pWnd : HWND;
          pMsg : TMsg;
    function WindowProc(wnd: HWND; Msg: Integer; wParam: wParam; lParam: lParam): Lresult; stdcall;
    begin
          Result:=0;
          case msg of
           WM_CREATE:
            begin
            end;
           WM_DESTROY:
            begin
              Halt;
            end;
           WM_PAINT:
            begin
            end;
          else
           Result:=DefWindowProc(wnd,msg,wparam,lparam);
          end;
    end;
    begin
           wc.cbSize       := sizeof(wc);
           wc.lpfnWndProc  := @WindowProc;
           wc.cbClsExtra   := 0;
           wc.cbWndExtra   := 0;
           wc.hInstance    := HInstance;
           wc.hCursor      := LoadCursor(0, IDC_ARROW);
           wc.hbrBackground:= COLOR_BTNFACE+1;
           wc.lpszMenuName := nil;
           wc.lpszClassName:= 'Prog';        
           RegisterClassEx(wc);
           pWnd := CreateWindowEx(WS_EX_APPWINDOW, 'Prog', 'Prog',
             WS_SYSMENU , getsystemmetrics(0)div 2-90, getsystemmetrics(1)div 2-90, 250, 254, 0, 0,
             Hinstance, nil);
           ShowWindow(pWnd, SW_SHOW);
           while true do
           begin
            if peekmessage(pmsg,0,0,0,pm_remove)=true then
            begin
             TranslateMessage(pMsg);
             DispatchMessage(pMsg);
            end;
           end;
    end.
     
    Форум » Программирование игр » Delphi » Пишем программу на чистом WinAPI (Создание формы!)
    • Страница 1 из 1
    • 1
    Поиск:

    Copyright MyCorp © 2024 | Хостинг от uCoz