Главная страница
    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.44 MB
Время: 0.008 c
1-38308
kkostik
2003-02-03 13:52
2003.02.13
Мастера помогите по хукам!!!!!


4-38660
kalishenko stas
2002-12-29 17:44
2003.02.13
Скрытие процесса


7-38617
DS
2002-12-06 10:48
2003.02.13
Преобразовать TXT в TIFF


1-38302
PrettyFly
2003-02-05 15:18
2003.02.13
Длина строки


14-38558
qwerty1234
2003-01-28 22:36
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский