02.12.2012, 12:20
|
|
Активный
|
|
Регистрация: 19.11.2011
Адрес: Украина, Луганская обл.
Сообщения: 244
Версия Delphi: 7, XE, Lazarus
Репутация: выкл
|
|
Создание ListBox WinAPI
Код:
Код:
program JustProgram;
uses
Windows, Messages;
var
WC: TWndClassEx;
Wnd: HWND;
Msg: TMsg;
const
WndClass = 'TWindow';
WndCaption = 'Just Program';
{$R *.res}
function WindowProc(Wnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):
LRESULT; stdcall;
begin
// Обработка сообщений
case Msg of
// Сообщение при закрытии формы
WM_DESTROY:
begin
// Запрос на закрытие
PostQuitMessage(0);
// Отрицательный результат
Result := 0;
// Завершаем процедуру
Exit
end;
else
// Положительний результат
Result := DefWindowProc(Wnd, Msg, wParam, lParam)
end;
end;
begin
// Производим действия над TWndClassEx
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_WINDOW;
// Указатель на главное меню
lpszMenuName := nil;
// Имя класса
lpszClassName := WndClass;
end;
// Регистрируем класс
RegisterClassEx(WC);
// Создаем форму с заданными параметрами
Wnd := CreateWindowEx(0, WndClass, WndCaption, WS_OVERLAPPEDWINDOW, 250, 60,
300, 100, 0, 0, hInstance, nil);
// Отображаем форму
ShowWindow(Wnd, SW_SHOWNORMAL);
ListBox := CreateWindowEx(WS_EX_CLIENTEDGE, 'ListBox', '',
WS_CHILD or WS_VISIBLE or LBS_EXTENDEDSEL, 120, 40, 121, 97, WND, 0,
hInst, nil);
SendMessage(ListBox, WM_SETFONT, hFont, 0);
// Обработка сообщений
while GetMessage(Msg, 0, 0, 0) do
begin
// Транслирование сообщений
TranslateMessage(Msg);
// Посылаем сообщения оконной процедуре
DispatchMessage(Msg);
end;
// Завершение приложения
Halt(Msg.wParam);
end.
Но ругается на ListBox, подскажите как его объявить?..
|