Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

создании окна, как диалог из ресурса   Найти похожие ветки 

 
Dima_1st   (2003-01-03 01:02) [0]

Проблемка при создании окна, как диалог из ресурса, не верные размеры окна.
В RC файле имеем:

LANGUAGE LANG_RUSSIAN,0

MAIN_DIALOG DIALOG 0, 0, 100, 100
CLASS "Sample1WndClass"
CAPTION "Sample1"
FONT 8, "MS Sans Serif"
LANGUAGE LANG_RUSSIAN , 0
{
}


Т.е. размер окна по идее должен быть 100x100.
Теперь создаем это окно :


var

hWnd : THandle;
MainWndClass : TWndClassEx;
...

FillChar(MainWndClass, SizeOf(TWndClassEx), 0);
With MainWndClass Do
Begin
cbSize := sizeof(MainWndClass);
style := cs_hredraw Or cs_vredraw;
lpfnWndProc := @MainWindowProc;
cbClsExtra := 0;
cbWndExtra := DLGWINDOWEXTRA;
hInstance := hInstance;
hIcon := 0;
hCursor := LoadCursor(0, idc_arrow);
hbrBackground := COLOR_BTNFACE + 1;
lpszMenuName := Nil;
lpszClassName := "Sample1WndClass";
End;
RegisterClassEx(MainWndClass);
hWnd := CreateDialog(hInstance, "MAIN_DIALOG", 0, Nil);
ShowWindow(hWnd, SW_SHOW);
...


Окно прекрасно появилось, но его размер НЕ 100x100 ! -

Размер клиенской области : 150x163, всего окна 156x188 !

Проверял GetWindowRect и GetClientRect.

Еще проще убедится в неверности размера нарисовав в окне прям-к размера 100x100. В чем ошибка ?


 
Suntechnic   (2003-01-03 03:00) [1]

100x100 это не в пикселях, а в условных единицах т.н. dialog units. Это сделано для того, чтобы не привязывать размеры окна к конкретной контексту в котором это окно создается(адаптер, монитор и т.д.). Для того чтобы перевести из dialog units в пиксели используется ф-ция MapDialogRect.


 
Dima_1st   (2003-01-03 11:35) [2]

Огромное спасибо, просто привык что все всегда в pix.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.008 c
14-38520
Wonder
2003-01-28 16:49
2003.02.13
Тем, у кого халявный доступ в инет


4-38634
MystiX
2003-01-02 18:59
2003.02.13
Компоненты в DLL !!!!


3-38069
dimmu3
2003-01-27 08:33
2003.02.13
ограничение на длинну строки в DBGrid


4-38629
b69
2002-12-29 17:09
2003.02.13
Как просмотреть текст DOS?


9-38002
lexerursik
2002-04-05 16:15
2003.02.13
Работа с непрямоугольными битмапами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский