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

Вниз

WinAPI   Найти похожие ветки 

 
IL2   (2002-12-10 22:12) [0]

Где найти ынфу как делать окна, кнопки ы т.д. на Delphi з используванием WinAPI?


 
Cobalt ©   (2002-12-10 23:22) [1]

См. в главном меню
Borland Delphi 4\Help\MS SDK Help Files\Win32 Programmer"s Reference.lnk
Там КУЧА информации. Открывай вкладку "Contents" - там все рассортировано по темам. Окна, меню, кнопки, комбобоксы и все такое прочее.


 
Юрий Зотов ©   (2002-12-11 00:02) [2]

А это для примера. Разберитесь досконально с каждым словом в нем... иначе придется забыть про сабж.

program HelloWorld;

uses
Windows,
Messages;

// Оконная функция - обрабатывает все поступающие окну сообщения.
function WndFunc(Wnd, Msg: DWord; wParam, lParam: integer): integer; stdcall;
var
DC: HDC;
PaintStruct: TPaintStruct;
Rect: TRect;
begin
case Msg of
WM_Paint:
begin // Если поступило сообщение WM_Paint,
DC := BeginPaint(Wnd, PaintStruct); // то подготовить отрисовку,
GetClientRect(Wnd, Rect); // получить клиентскую область и в ее центре отрисовать текст,
DrawText(DC, "Hello, World!", -1, Rect, DT_SINGLELINE or DT_CENTER or DT_VCENTER);
EndPaint(Wnd, PaintStruct); // затем сообщить системе, что рисование завершено
Result := 0 // и что сообщение WM_Paint обработано.
end;
WM_Destroy:
begin // Если поступило сообщение WM_Destroy,
PostQuitMessage(0); // то послать в очередь потока сообщение WM_Quit
Result := 0 // и сообщить системе, что WM_Destroy обработано.
end
else Result := DefWindowProc(Wnd, Msg, wParam, lParam) // Для других сообщений вызвать стандартную оконную функцию.
end
end { of WndFunc };

const
AppName = "Project1";

var
Msg: TMsg;
WndClass: TWndClassEx;

begin { main }

// Заполняем запись WndClass и регистрируем в системе класс окна
with WndClass do
begin
cbSize := SizeOf(WndClass);
Style := CS_HRedraw or CS_VRedraw;
lpfnWndProc := @WndFunc;
hIcon := LoadIcon(0, IDI_Application);
hCursor := LoadCursor(0, IDC_Arrow);
hbrBackground := hBrush(Color_Window);
lpszMenuName := Nil;
lpszClassName := AppName;
hIconSm := hIcon
end;
WndClass.hInstance := hInstance;
RegisterClassEx(WndClass);

// Создаем и показываем окно заданного класса
CreateWindowEx(0, AppName, AppName, WS_OverlappedWindow or WS_Visible,
CW_UseDefault, CW_UseDefault, CW_UseDefault, CW_UseDefault, 0, 0, hInstance, Nil);

// Цикл обработки сообщений (работает, пока не поступит сообщение WM_Quit).
while GetMessage(Msg, 0, 0, 0) do // Выбрать сообщение из очереди потока
begin // и, если это сообщение не WM_Quit, то
TranslateMessage(Msg); // преобразовать сообщение клавиатуры
DispatchMessage(Msg) // и вызвать функцию окна Msg.hWnd
end;

// Передаем системе код завершения программы
Halt(Msg.wParam)
end.


 
zavdim   (2002-12-11 06:34) [3]

А потом можно почитать Петзольда(тут было где-то Петцольда).
Там примеры на Си, но хорошо укладываются в приведенную выше схему.
Некоторые моменты для Delphi можно взять из книги М.Краснова "OpenGL. Графика в проектах Delphi"



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

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

Наверх




Память: 0.47 MB
Время: 0.019 c
14-99260
Top Gun
2002-11-26 23:13
2002.12.30
Что лучше, больше памяти или больше частота процессора ?


1-99161
----
2002-12-18 17:50
2002.12.30
Объединение меню из разных форм


6-99237
Zolen
2002-11-01 19:24
2002.12.30
создание HTML страницы


3-99003
Valeron
2002-12-09 10:11
2002.12.30
Проблема с D6 после редактирования *.tlb


7-99371
RETAND
2002-10-21 21:00
2002.12.30
Сделать мою форму как рабочий стол