Вниз
Скачать: CL | DM;

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

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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
1-38306
msoftware
2003-02-06 06:32
2003.02.13
Сохранение иконки в типизированный файл


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


14-38525
MikeFW
2003-01-29 10:48
2003.02.13
Где в Инете можно скачать Delphi 3?


14-38472
michael_b
2003-01-30 20:21
2003.02.13
Проблема с рекурсией


1-38223
Dr.Karter
2003-02-05 09:00
2003.02.13
Как получить значение ключа?




   Наверх