Как с помощью API поместить Label на Form?
Материал из DRKB
Как с помощью API поместить Label на Form?[править | править код]
var
hLabel: HWND ;
begin
hLabel := CreateWindow('STATIC', 'test', WS_CHILD or WS_VISIBLE, 0, 0, 200, 40, hWnd, NULL, hInstance, NULL);
end;
Vit Примечание: Скорее всего последний параметр не "NULL", а "Nil" (NULL в паскале - варианта для обозначения пустого поля в базе данных)
Author: Baa
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02021
program Project1;
uses
Windows,
Messages;
const
myClassName = 'myWindow';
var
handleWnd, Label1: THandle;
WndClass: TWndClass;
Msg: TMsg;
function WindowProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall;
begin
WindowProc := DefWindowProc(Window, AMessage, WParam, LParam);
case AMessage of
{WM_COMMAND: if lParam = Button1 then
MessageBox(0, 'Вы нажали кнопку!', 'Информация', MB_OK or MB_ICONINFORMATION); }
WM_DESTROY: Halt;
end;
end;
begin
with WndClass do
begin
hInstance := hInstance;
lpszClassName := myClassName;
style := cs_hRedraw or cs_vRedraw;
hbrBackground := color_btnface + 1;
lpfnWndProc := @WindowProc;
hCursor := LoadCursor(0, idc_Arrow);
hIcon := LoadIcon(0, IDI_EXCLAMATION);
lpszMenuName := NIL;
cbWndExtra := 0;
cbClsExtra := 0;
end;
RegisterClass(WndClass);
handleWnd := CreateWindow(myClassName, 'Hажми кнопку', ws_OverlappedWindow,
400, 300, 200, 100, 0, 0, hInstance , NIL);
if handleWnd = 0 then
begin
MessageBox(0, 'Error', NIL, MB_OK);
Exit;
end;
Label1 := CreateWindow('Label', 'Text', WS_VISIBLE or WS_CHILD or WM_SETTEXT,
20, 10, 60, 23, handleWnd, 0, hInstance, nil);
ShowWindow(handleWnd, SW_SHOW);
UpdateWindow(handleWnd);
while GetMessage(Msg, handleWnd, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.
Author: alex-co
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02022