Форум: "WinAPI";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
ВнизКак добавить контрол? Найти похожие ветки
← →
Cosmic (2002-11-16 21:37) [0]Есть программа (кажись, с этого сайта :))
program winmin;
uses
windows, messages;
var
wc : TWndClassEx;
MainWnd : HWND;
Mesg : TMsg;
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult; stdcall;
Begin
case msg of
wm_destroy :
Begin
postquitmessage(0);
exit;
Result := 0;
End
else
Result := DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
var
xPos,yPos,nWidth,nHeight : Integer;
begin
with wc do
begin
cbSize := sizeof(wc);
style := cs_hredraw or cs_vredraw;
lpfnWndProc := @WindowProc;
cbClsExtra := 0;
cbWndExtra := 0;
hInstance := HInstance;
hIcon := LoadIcon(0,idi_application);
hCursor := LoadCursor(0,idc_arrow);
hbrBackground := COLOR_BTNFACE+1;
lpszMenuName := nil;
lpszClassName := "WinMin : Main";
end;
RegisterClassEx(wc);
xPos:=100;
yPos:=150;
nWidth:=400;
nHeight:=250;
MainWnd:=CreateWindowEx (0,"WinMin : Main","Sample",ws_overlappedwindow,xPos,yPos,nWidth,nHeight,0,0,Hinstance,nil);
ShowWindow(MainWnd,CmdShow);
While GetMessage(Mesg,0,0,0) do
begin
TranslateMessage(Mesg);
DispatchMessage(Mesg);
end;
end.
1. Надо на созданное окно добавить контрол (ну, скажем, кнопку). Как? И как потом обрабатывать сообщения?
2. Что такое hinstance?
← →
Александр Павлов (2002-11-17 05:23) [1]1)Добавь строчки выделенные жирным:
program winmin;
uses
windows, messages;
var
...
Button1: Integer;
...
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult; stdcall;
Begin
case msg of
wm_destroy :
Begin
postquitmessage(0);
exit;
Result := 0;
End;
wm_command : begin
if (lParam = Button1) then
MessageBoxA(MainWnd, "Нажата", "Тест", MB_OK);
end
else
Result := DefWindowProc(wnd,msg,wparam,lparam);
end;
End;
...
begin
...
Button1 := CreateWindow("Button", "OK", WS_VISIBLE or WS_CHILD or BS_PUSHLIKE or BS_TEXT,
0, 0, 75, 25, MainWnd, 0, hInstance, nil);
...
ShowWindow(MainWnd,CmdShow);
...
end.
Вместо ShowWindow(MainWnd,CmdShow) желательно использовать UpdateWindow(MainWnd).
2) <CTL>+<F1>
← →
Cosmic (2002-11-17 18:11) [2]Отлично. А как туда же засунуть меню с парой пунктов (скажем, Shutdown & Exit)?
← →
Diamond Cat (2002-11-18 00:04) [3]а например почитать хелп по CreateWindow и CreateWindowEx
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c