Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.09;
Скачать: CL | DM;

Вниз

Размеры и расположение окна   Найти похожие ветки 

 
Kinder   (2003-11-04 16:17) [0]

Как узнать размеры и позицию окна в пискселях?


 
esVer ©   (2003-11-04 16:20) [1]

Какого?
....
FindWindow
GetWindowRect


 
Nick Denry ©   (2003-11-04 16:21) [2]

The GetWindowRect function retrieves the dimensions of the bounding rectangle of the specified window. The dimensions are given in screen coordinates that are relative to the upper-left corner of the screen.

BOOL GetWindowRect(

HWND hWnd, // handle of window
LPRECT lpRect // address of structure for window coordinates
);

Прям то че надо...


 
Kinder   (2003-11-04 20:14) [3]

Сенкс. А как выставить теперь размер окна.
Использую фонкцию SetWindowPos, но при установке позиций X и Y они почему-то на 4 пикселя съезжают. Почему это?



 
DVM ©   (2003-11-04 20:57) [4]


> они почему-то на 4 пикселя съезжают

А окно не дочернее случайно?


 
Kinder   (2003-11-05 08:47) [5]

2DVM
Оно самое :) А что?


 
ZEE ©   (2003-11-05 10:09) [6]

GetWindowRect -> ScreenToClient -> ClientToScreen -> SetWindowPos


 
DVM ©   (2003-11-05 13:20) [7]


> 2DVM
> Оно самое :) А что?

Координаты надо преобразовывать. См. ZEE.


 
Kinder   (2003-11-05 17:00) [8]

попробую


 
Kinder   (2003-11-05 17:12) [9]

так чтоль?


ClientPoint:=ScreenToClient(rebarrect.TopLeft);
ClientPoint:=ClientToScreen(ClientPoint);
SetWindowPos(ReBarhandle,HWND_TOP,drebarwidth-2,clientpoint.Y,rebarwidth,rebarheight,0); // Установка размеров таскбара


Ничего не изменилось.


 
ZEE ©   (2003-11-05 17:28) [10]

по моему тебе все-таки не надо ScreenToClient/ClientToScreen
разберись лучше с drebarwidth, rebarwidth, rebarheight ...


 
Kinder   (2003-11-05 17:45) [11]

Да там вроде правильно всё.


allwidth:=abs(startrect.Left-startrect.Right)+abs(rebarrect.Left-rebarrect.Right); // Ширина Пуска + таскбара
startwidth:=GetTextWidth(starttext, AFont)+15; // Ширина кнопки Пуск
rebarwidth:=allwidth-startwidth; // Ширина таскбара
drebarwidth:=rebarrect.Left-(rebarwidth-abs(rebarrect.Left-rebarrect.Right)); // Установка нового левого угла таскбара
ClientPoint:=rebarrect.TopLeft;
windows.ScreenToClient(ReBarHandle, clientpoint);

Вот собственно и всё. Ничего сложного. Теперь высота нормально сработала. Вот только не знаю как с шириной быть. Прышает зараза.


 
Kinder   (2003-11-05 17:57) [12]

всё
разобрался.



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
14-25550
deema
2003-12-18 13:41
2004.01.09
МИСТИКА!!!???


14-25604
Nick-From
2003-12-19 13:29
2004.01.09
sophisticated DBcombobox


9-25171
inc-viz
2003-06-08 16:08
2004.01.09
Collision c freeform в GlScene


1-25277
alless
2003-12-23 15:04
2004.01.09
Помогите, DBGrid!


8-25454
Virus
2003-09-09 11:00
2004.01.09
смена фона рабочего стола