|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Создание 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. |
#2
|
||||
|
||||
Код:
CreateWindowEx(WS_EX_CLIENTEDGE, 'ListBox', '', WS_CHILD or WS_VISIBLE or LBS_EXTENDEDSEL, 120, 40, 121, 97, AWnd, 0, HInstance, nil); Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
sariman (02.12.2012)
|
#3
|
||||
|
||||
ListBox: THandle
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
sariman (06.12.2012)
|
#4
|
||||
|
||||
Спасибо, а как сделать alBottom? В VCL такое без проблем, а в WinAPI как?
|
#5
|
||||
|
||||
SetWindowPos\MoveWindow
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
sariman (02.12.2012)
|
#6
|
||||
|
||||
Код:
CreateWindowEx(WS_EX_CLIENTEDGE, 'ListBox', '', WS_CHILD or WS_VISIBLE or LBS_EXTENDEDSEL, 120, 40, 121, 97, Wnd, 0, HInstance, nil); SetWindowPos(Wnd, HWND_BOTTOM, 0, 0, 0, 0, 0); |
#7
|
||||
|
||||
нельзя передать то, чего нет.
Пишу программы за еду. __________________ |