Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.17;
Скачать: CL | DM;

Вниз

Как с помощью WinAPI создать окно с кнопкой   Найти похожие ветки 

 
Long   (2003-02-17 18:15) [0]

Как с помощью WinAPI создать окно с кнопкой (на которую я смогу нажать и отработать это нажатие)


 
Masik's   (2003-02-18 02:05) [1]

program WinApi;

uses
Windows, Messages;

{$R *.RES}

const
IDC_EXIT = 100; // идентификатор сообщения для кнопки

var
Handle: HWnd; // дескриптор окна
Instance: HWnd; // дескриптор потока
Msg: TMsg; // тип сообщения
WindowClass: TWndClass; // тип окна

{ процедура обработки сообщений потока}
function WindowProc(AWnd, Msg, Wparam, Lparam: LongInt): LongInt; stdcall;
var
hBtn: Hwnd; // дескриптор кнопки
begin
// обработка сообщений по умолчанию
Result := DefWindowProc(AWnd, Msg, Wparam, Lparam);
case Msg of
WM_Command :
case wParam of
IDC_Exit : DestroyWindow(Handle);// если отправителем
// сообщения является
end; // кнопка, то закрываем
// главное окно
WM_Destroy : PostQuitMessage(0); // а при закрытии главного
// окна закрываем приложение
end;
end;

begin
// определяем класс главного окна
Instance := GetModuleHandle(nil);
WindowClass.style := CS_HRedraw or CS_VRedraw;
WindowClass.lpfnWndProc := @WindowProc;
WindowClass.HInstance := Instance;
WindowClass.HbrBackground := COLOR_BTNFACE+1;
WindowClass.lpszClassName := "MyApp";
WindowClass.HCursor := LoadCursor(0, IDC_Arrow);
WindowClass.HIcon := LoadIcon(Instance,nil);
WindowClass.lpszMenuName := "MyApp";
RegisterClass(WindowClass);
// создаем главное окно\
Handle := CreateWindowEx(WS_EX_WINDOWEDGE,"MyApp","My Application", WS_OVERLAPPEDWINDOW, 200, 200, CW_USEDEFAULT,
CW_USEDEFAULT, 0, 0, Instance,nil);
// показываем главное окно
ShowWindow(Handle, SW_SHOW);
// обновляем клиентскую область главного окна
UpdateWindow(Handle);
// создаем кнопку
hBtn := CreateWindow("BUTTON","Exit",WS_CHILD or WS_VISIBLE or BS_PUSHBUTTON,250,250,100,32, Handle,IDC_Exit,Instance,nil);
// показываем кнопку
ShowWindow(hBtn,SW_Show);
// передаем фокус
SetFocus(hBtn);
// если в очереди сообщений существует сообщение,
// то обрабатываем их
while GetMessage(Msg,0,0,0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.


 
Long   (2003-02-18 13:05) [2]

СПАСИБО



Страницы: 1 вся ветка

Текущий архив: 2003.04.17;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
8-54751
KA_
2003-01-11 11:54
2003.04.17
SVG


9-54389
seemann
2002-10-28 12:20
2003.04.17
3d max


1-54570
Demon_mhm
2003-04-07 03:35
2003.04.17
Как поместить Caption из TListView в MessageBox?


1-54670
MSTX
2003-04-02 16:33
2003.04.17
Шифрование файлов.


8-54757
SKnot
2003-01-18 01:34
2003.04.17
WMA