Главная страница
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
8-25457
Raper
2003-09-05 10:02
2004.01.09
Подскажите как проиграть mp3 и в нужный момент остановить его..


1-25371
]eRoR_rrr[
2003-12-25 11:47
2004.01.09
RichEdit


6-25468
lena19
2003-11-08 10:49
2004.01.09
как узнать мак адрес сетевой платы


14-25613
Думкин
2003-12-17 07:34
2004.01.09
С днем рождения! 17 декабря.


3-25231
ToleaN
2003-12-11 10:51
2004.01.09
как вызвать диалог выбора DSN