![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать форму (окно) ? [D5]
Roxtady © (2002-08-21 17:28:00)Значит, создаю новый класс. Регистрирую. Создаю окно CreateWindowEx. Только создается оно невидимым. Как бы его показать на экране ?
Юрий Зотов (2002-08-22 00:25:00) [1]1. > и что дальше ?
А дальше - посмотреть справку, там все просто.
GetDeviceCaps(DC, HORZRES) - дает ширину.
2. Можно и через GetSystemMetrics. Но GetDeviceCaps дает больше возможностей (см. описание).
Roxtady (2002-08-21 23:22:00) [2]Юрий Зотов, спасибо. Только непонятен ваши пример про размеры экрана. GetDeviceCaps(...) - и что дальше ?
Как я разобрался, чтобы узнать размеры экрана:
Ширина GetSystemMetrics(SM_CXSCREEN)
Высота GetSystemMetrics(SM_CYSCREEN)
Юрий Зотов (2002-08-21 23:04:00) [3]> translatemessage
"translates virtual-key messages into character messages"
Транслирует сообщения WM_KEYxxx в WM_CHARxxx и снова помещает их в очередь сообщений.
> dispatchmessage
"dispatches a message to a window procedure."
Вызывает оконную функцию нужного окна и передает ей сообщение на обработку.
> размеры экрана
H := GetDesktopWindow;
DC := GetDC(H);
try
GetDeviceCaps(...);
...
finally
ReleaseDC(H, DC)
end;
Roxtady (2002-08-21 21:40:00) [4]И еще вопрос. Каким образом достигнуть свойства poScreenCenter ? Или просто хотя бы поместить форму по центру экрана. А то объекта Screen нету при uses windows, messages - а как по другому узнать размеры экрана - не знаю.
Roxtady (2002-08-21 21:33:00) [5]С кое какими вопросами разобрался. Видно, мне глазенки нужно протереть и внимательней читать SDK.
Ответы =) если кому нужно
1) Надо писать Windowclass.hbrBackground:=COLOR_BACKGROUND
2) Окно с заголовком WS_CAPTION
Диалогове окно WS_SYSMENU
С изменяемым размером WS_SYSMENU or WS_SIZEBOX
Кнопка свернуть WS_SYSMENU or WS_MINIMIZEBOX
Кнопка развернуть WS_SYSMENU or WS_MAXIMIZEBOX
3) Если указывать WS_SYSMENU, WS_MINIMIZEBOX, WS_MAXIMIZEBOX - то меню в панели задач появляется автоматом
А вот насчет четвертого пункта - не понял. Что все таки делают translatemessage и dispatchmessage ?
Roxtady (2002-08-21 20:26:00) [6]Спасибо !
Еще вопросы, если позволите.
1) Почему то окно белого цвета. Хотя я указал Windowclass.hbrBackground:=color_btnface; - по идее должно быть серым (под цвет кнопок)
2) Указываю стиль окна WS_POPUP. Но при этом естественно нет заголовка. Как создать окно с заголовком ? Какие параметры указывать, чтобы было как диалоговое окно в дельфовых формах ?Чтобы как с изменяемым размером ? Чтобы размеры нельзя изменить, но присутствуют кнопки свернуть, развернуть ?
3) В панели задач появляется окно с именем lpWindowName. Но по правому клику не возникает всплывающее меню со стандартными функциями свернуть, закрыть...
4) a) Что делает процедура translatemessage ?
б) Что делает процедура dispatchmessage ?
Юрий Зотов (2002-08-21 18:29:00) [7]Либо ShowWindow, либо создавать сразу со стилем "видимое".
Игорь Шевченко (2002-08-21 17:48:00) [8]ShowWindow ?