Форум: "WinAPI";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
ВнизКак создать форму (окно) ? Найти похожие ветки
← →
Roxtady (2002-08-21 17:28) [0]Значит, создаю новый класс. Регистрирую. Создаю окно CreateWindowEx. Только создается оно невидимым. Как бы его показать на экране ?
← →
Игорь Шевченко (2002-08-21 17:48) [1]ShowWindow ?
← →
Юрий Зотов (2002-08-21 18:29) [2]Либо ShowWindow, либо создавать сразу со стилем "видимое".
← →
Roxtady (2002-08-21 20:26) [3]Спасибо !
Еще вопросы, если позволите.
1) Почему то окно белого цвета. Хотя я указал Windowclass.hbrBackground:=color_btnface; - по идее должно быть серым (под цвет кнопок)
2) Указываю стиль окна WS_POPUP. Но при этом естественно нет заголовка. Как создать окно с заголовком ? Какие параметры указывать, чтобы было как диалоговое окно в дельфовых формах ?Чтобы как с изменяемым размером ? Чтобы размеры нельзя изменить, но присутствуют кнопки свернуть, развернуть ?
3) В панели задач появляется окно с именем lpWindowName. Но по правому клику не возникает всплывающее меню со стандартными функциями свернуть, закрыть...
4) a) Что делает процедура translatemessage ?
б) Что делает процедура dispatchmessage ?
← →
Roxtady (2002-08-21 21:33) [4]С кое какими вопросами разобрался. Видно, мне глазенки нужно протереть и внимательней читать 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 21:40) [5]И еще вопрос. Каким образом достигнуть свойства poScreenCenter ? Или просто хотя бы поместить форму по центру экрана. А то объекта Screen нету при uses windows, messages - а как по другому узнать размеры экрана - не знаю.
← →
Юрий Зотов (2002-08-21 23:04) [6]> 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 23:22) [7]Юрий Зотов, спасибо. Только непонятен ваши пример про размеры экрана. GetDeviceCaps(...) - и что дальше ?
Как я разобрался, чтобы узнать размеры экрана:
Ширина GetSystemMetrics(SM_CXSCREEN)
Высота GetSystemMetrics(SM_CYSCREEN)
← →
Юрий Зотов (2002-08-22 00:25) [8]1. > и что дальше ?
А дальше - посмотреть справку, там все просто.
GetDeviceCaps(DC, HORZRES) - дает ширину.
2. Можно и через GetSystemMetrics. Но GetDeviceCaps дает больше возможностей (см. описание).
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.012 c