Главная страница
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.022 c
1-21042
Влад Утюмов
2002-09-27 07:55
2002.10.07
Хранение Integer в Combobox


14-21267
michael_b
2002-09-08 22:13
2002.10.07
Кто-нибудь видел пиратский Delphi7 Studio Architect


1-21012
Evgeny
2002-09-24 15:02
2002.10.07
mdichild


1-20975
DiHLoS
2002-09-26 14:01
2002.10.07
Как распечатать StringGrid?


3-20882
wed
2002-09-16 14:59
2002.10.07
Как подключить ODBC 16-bit