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

Вниз

Как добавить контрол?   Найти похожие ветки 

 
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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.017 c
3-14930
sndanil
2002-12-13 18:42
2003.01.06
Поле Time


1-15068
BigMan
2002-12-25 09:07
2003.01.06
---|Ветка была без названия|---


4-15369
sen
2002-11-19 14:15
2003.01.06
Открытие внешних файлов Word


7-15336
SeF
2002-10-28 11:03
2003.01.06
service


14-15279
RV
2002-12-17 11:53
2003.01.06
Прикол :)