Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
ВнизРазмеры и расположение окна Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c