Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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
1-25328
It
2003-12-22 15:44
2004.01.09
StringGrid в Excel


4-25668
Gilk
2003-11-05 16:31
2004.01.09
Как узнать открыт/используется ли документ


8-25452
mod
2003-09-09 14:17
2004.01.09
Вопрос по картинкам


3-25222
loki128
2003-12-11 13:36
2004.01.09
Работа с TADOQuery


14-25550
deema
2003-12-18 13:41
2004.01.09
МИСТИКА!!!???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский