Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: 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 вся ветка

Текущий архив: 2003.02.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
3-38044
qwerty2
2003-01-29 13:42
2003.02.13
Помогите одолеть Microsoft Access!


7-38600
-Alex-
2002-12-10 19:41
2003.02.13
Как узнать о смене картинки рабочего стола.


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


7-38592
SPIRIT
2002-12-11 01:45
2003.02.13
Дополнительные кнопки на клавиатуре


3-38081
grigoriy99
2003-01-22 16:52
2003.02.13
TClientDataSet