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

Вниз

создание окна   Найти похожие ветки 

 
ef2000   (2002-08-14 13:31) [0]

Подскажите пожалуйста, как создать окно средствами win api? Если не затруднит, приведите код.. Сам пробовал:

var
Window: hWnd;
begin
Window:=CreateWindow(AppName, "Окно", WS_OVERLAPPED, 0, 0, 150, 150, 0, 0, HInstance, NIL);
ShowWindow(Window, SW_SHOW);
...
end.


не получилось. Видимио все сложнее.
Заранее благодарен.


 
ef2000   (2002-08-14 13:54) [1]

видимо надо регистрировать класс?


 
Ученик ©   (2002-08-14 14:00) [2]

>ef2000 (14.08.02 13:54)
Надо


 
ef2000   (2002-08-14 14:07) [3]

смотрю "Hello, world" на vc++, думаю разберусь сам.
спасибо.


 
Raptor ©   (2002-08-14 22:08) [4]

Да, это делается немного сложнее. Например так:

program MinWndTemplate;

uses
windows,messages;

var
wc : TWndClassEx;
Wnd : HWND;
Msg : TMsg;

function WindowProc(wnd : HWND; Msg : Integer; WParam : WParam; LParam : Longint): Longint; stdcall;
var
x,y:DWORD;
Begin
Result := 0;
case msg of
wm_destroy:Begin
postquitmessage(0);
exit;
Result:=0;
End;
//Здесь добавляешь обработчики событий WM_*
else Result := DefWindowProc(wnd, msg, wparam, lparam);
end;//Case MSG
End;

Begin
wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0, IDI_APPLICATION);
wc.hCursor:=LoadCursor(0, idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE + 1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="MinWnd Template";

RegisterClassEx(wc);
Wnd := CreateWindowEx(0, "MinWnd Template", "MinWnd Template",
ws_overlapped or ws_sysmenu or WS_MINIMIZEBOX or WS_MAXIMIZEBOX or WS_SIZEBOX ,100, 150, 360, 200, 0, 0,Hinstance, nil);

ShowWindow(Wnd, CmdShow);

While GetMessage(Msg, 0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end.



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
3-97954
RDA
2002-09-08 11:13
2002.09.30
Локализация EMS QuickDesk 2.0


8-98239
Сявчик
2002-05-30 21:23
2002.09.30
XP


1-98038
Юрий К
2002-09-18 21:05
2002.09.30
Запись динамического массива в файл


1-98141
Шурик Ш
2002-09-17 16:36
2002.09.30
Выбор значения из списка


14-98306
Карлсон
2002-09-03 20:39
2002.09.30
У кого какой модем?