Форум: "WinAPI";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
ВнизСоздание окна и кнопки на нем Найти похожие ветки
← →
solo (2002-01-18 14:14) [2]program Alphabet;
uses
Windows,
Messages;
const
cClassName = "Alphabet"; // Имя класса окна
var
MainHandle : THandle; //индентификатор окна
btnHandle : THandle; //идентификатор кнопки
WndClass: TWndClass; //структура WndClass
Msg: TMsg; //структура для принятия сообщений
procedure CloseWND;
//Закрываем программу
begin
SendMessage(MainHandle, WM_CLOSE, 0, 0);
end;
function WindowProc(hWnd: THandle; uMsg, wParam, lParam: Integer): Integer; {функция окна}
stdcall; export;
//Оконная функция
begin
Result := 0;
case uMsg of
WM_DESTROY: //если uMsg равна WM_DESTROY(код закрытия окна) то закрываемся
begin
postquitmessage(0);
exit;
end;
WM_COMMAND:
if LParam = btnHandle then CloseWND;
end;
Result := DefWindowProc(hWnd, uMsg, wParam, lParam); //удалить остальные сообщения
end;
procedure CreateButton;
// Создание кнопки
begin
btnHandle:=CreateWindow("Button", "Закрыть",
BS_CENTER or BS_VCENTER or WS_CHILD or WS_VISIBLE,
110, 150, 80, 25,
mainHandle, 0, hInstance, nil);
end;
procedure CreateMainForm;
{Создание главного окна программы}
begin
FillChar(WndClass, SizeOf(WndClass), 0); //заполняем структуру нулями
with WndClass do begin
hInstance := SysInit.hInstance; //Обязательный параметр, индентификатор вашего приложения
lpszClassName := cClassName; //имя класса
lpfnWndProc := @WindowProc; //имя функции окна
hbrBackground := COLOR_WINDOW;// //способ заливки клиентской области
hCursor := LoadCursor(0,idc_arrow);//Задаем стандартный курсор
end;
RegisterClass(WndClass); //регистрируем класс
MainHandle := CreateWindow(cClassName,
"",
WS_THICKFRAME or WS_SYSMENU or WS_MAXIMIZEBOX or WS_MINIMIZEBOX or WS_VISIBLE,
0, 0,
300, 250,
0, 0, hInstance, NIL); //создаем окно
if MainHandle = 0 then begin //если произошла ошибка, то выходим
MessageBox(0, "Initialisation failed", NIL, ID_OK);
Exit;
end;
end;
begin
CreateMainForm;// Создание главного окна программы
CreateButton;//Создаем кнопку
while GetMessage(Msg, 0, 0, 0) do
begin //получаем сообщение
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
Halt(Msg.wParam);
end.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.03.18;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c