Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
14-21205
Mike B.
2002-09-11 11:56
2002.10.07
Тяжела и неказиста жизнь простого программиста :-)


1-21133
Akim2
2002-09-25 19:50
2002.10.07
Как запретить закрытие формы по Alt+F4?


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


1-21011
turusov
2002-09-25 15:24
2002.10.07
Object Pascal and Delphi


1-21150
Alf_
2002-09-26 07:37
2002.10.07
Помогите ламеру





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский