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

Вниз

Как создать форму (окно) ?   Найти похожие ветки 

 
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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-20980
neodiX
2002-09-24 17:14
2002.10.07
TP7.0 & Delphi


1-21152
kull
2002-09-25 13:21
2002.10.07
Backup ветки реестра...


1-21064
kserg@ukr.net
2002-09-27 16:18
2002.10.07
как в форме(окне ) поймать нажатие Ctrl-S ?


14-21228
Doctor Snap
2002-09-11 22:59
2002.10.07
Delphi und Linux


14-21221
Оголодавший тип
2002-09-11 10:15
2002.10.07
А кто что ест ????????