Главная страницаОбратная связьКарта сайта

Создание формы на чистом API

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

// Put this code in your Project file (*.dpr). 
// Den Code in eine Projekt Datei (*.dpr) einfugen. 

program Project1;

 uses
   windows, messages;


 // Main Window Procedure 

function MainWndProc(hWindow: HWND; Msg: UINT; wParam: wParam;
   lParam: lParam): LRESULT; stdcall; export;
 var
   ps: TPaintStruct;
 begin
   Result := 0;
   case Msg of
     WM_PAINT:
       begin
         BeginPaint(hWindow, ps);
         SetBkMode(ps.hdc, TRANSPARENT);
         TextOut(ps.hdc, 10, 10, "Hello, World!", 13);
         EndPaint(hWindow, ps);
       end;
     WM_DESTROY: PostQuitMessage(0);
     else
       begin
         Result := DefWindowProc(hWindow, Msg, wParam, lParam);
         Exit;
       end;
   end;
 end;

 // Main Procedure 

var
   wc: TWndClass;
   hWindow: HWND;
   Msg: TMsg;
 begin
   wc.lpszClassName := "YourAppClass";
   wc.lpfnWndProc   := @MainWndProc;
   wc.Style         := CS_VREDRAW or CS_HREDRAW;
   wc.hInstance     := hInstance;
   wc.hIcon         := LoadIcon(0, IDI_APPLICATION);
   wc.hCursor       := LoadCursor(0, IDC_ARROW);
   wc.hbrBackground := (COLOR_WINDOW + 1);
   wc.lpszMenuName  := nil;
   wc.cbClsExtra    := 0;
   wc.cbWndExtra    := 0;
   RegisterClass(wc);
   hWindow := CreateWindowEx(WS_EX_CONTROLPARENT or WS_EX_WINDOWEDGE,
     "YourAppClass",
     "API",
     WS_VISIBLE or WS_CLIPSIBLINGS or
     WS_CLIPCHILDREN or WS_OVERLAPPEDWINDOW,
     CW_USEDEFAULT, 0,
     400, 300,
     0,
     0,
     hInstance,
     nil);

   ShowWindow(hWindow, CmdShow);
   UpDateWindow(hWindow);

   while GetMessage(Msg, 0, 0, 0) do
   begin
     TranslateMessage(Msg);
     DispatchMessage(Msg);
   end;
   Halt(Msg.wParam);
 end.

Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Создание формы на чистом API", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info