Главная страница
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.021 c
14-25588
Maxim Vetera
2003-12-16 18:34
2004.01.09
Цвет шрифта в Word 2002 (Office XP)


1-25281
int64
2003-12-22 13:08
2004.01.09
Как конвертнуть бинарный *.dmf в текстовый формат?


3-25210
Layner
2003-12-11 09:46
2004.01.09
Можно ли установить SQL Server на Win2000Prof?


4-25672
Колян_К
2003-11-05 11:21
2004.01.09
Как можно программно прерывать системн процессы?


14-25558
lipskiy
2003-12-15 02:04
2004.01.09
Эмулятор принтера?