Форум: "WinAPI";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
ВнизВопрос по WinAPI Найти похожие ветки
← →
Обсолютный ноль (2002-11-07 20:22) [0]Подскажите пожалуйста пример простой программы с окошком, написанной на WinAPI. P.S. Если не знаете точно то напишите хотяб идею.
Заранее благодарен, Обсолютный НОЛЬ.
← →
Ich Hasse (2002-11-07 21:18) [1]
program CreateWindow;
uses
Windows,
Messages;
var Window : HWND; //ссылка на окно
x,y : Word; //координаты вывода
Width : Word; //ширина
Height : Word; //высота
Class : TWndClass; //класс окна
Report : TMsg;
{$R *.res}
function WindowProc (Window : HWnd; Report, WParam : Word;
LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;
case Report of
wm_Create : begin
{Тут идет код который совершается при создании}
end;
wm_Destroy : begin
UnregisterClass("Class",Class.hInstance);
PostQuitMessage (0);
Exit;
end;
wm_Paint : begin
{Код при отрисовке}
end;
wm_Size : begin
{Код при изменении размеров}
end;
wm_timer : {Событие на таймер}
wm_keydown: begin
if wParam = VK_ESCAPE then PostMessage(Window,WM_CLOSE, 0, 0);
end;
end; //case
WindowProc := DefWindowProc (Window, Report, WParam, LParam);
end;
begin
With Class do begin
Style:= cs_DblClks or cs_HRedraw or cs_VRedraw;
lpfnWndProc:= @WindowProc;
cbClsExtra:= 0;
cbWndExtra:= 0;
hInstance:= 0;
hIcon:= LoadIcon (0, idi_Application);
hCursor:= LoadCursor (0, idc_Arrow);
hbrBackground:= COLOR_BTNFACE+1;;
lpszMenuName:= "";
lpszClassName:= "Class";
end;
RegisterClass(glClass);
// 640 и 480 базовые размеры
// далее мы делаем клиентскую область таких размеров при окне
// с большим заголовком
Width := 640 + GetSystemMetrics( SM_CXFIXEDFRAME ) * 2;
Height := 480 + GetSystemMetrics( SM_CYCAPTION ) + GetSystemMetrics( SM_CYFIXEDFRAME ) * 2;
x := round( (GetSystemMetrics( SM_CXSCREEN ) - glWidth) / 2 );
y := round( (GetSystemMetrics( SM_CYSCREEN ) - glHeight) / 2 );
Window:=CreateWindow("Class","Your Caption",
ws_overlappedwindow or ws_visible,x,y,glWidth,glHeight,
0, 0, glClass.hInstance, nil );
UpdateWindow (Window);
While GetMessage (Report, 0, 0, 0) do begin
TranslateMessage (Report);
DispatchMessage (Report);
end;
Halt (Report.wParam);
end.
Будут вопросы шли на мыло
← →
Ich Hasse (2002-11-07 21:18) [2]А код сам добавишь!!!
← →
Обсолютный ноль (2002-11-08 06:06) [3]БООООООООЛЬШОЕ спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.12.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c