Главная страница
    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
6-25486
shItaSS
2003-11-06 12:13
2004.01.09
Как программно опредилить в локалке комп или нет


9-25174
mrk
2003-06-15 11:59
2004.01.09
как загузить 3ds фаил с текстурой на чистом opengl?


3-25197
Andrushk
2003-12-10 17:55
2004.01.09
Рисование в шапке DBGrid


14-25534
Onyx
2003-12-19 11:04
2004.01.09
Win2k


1-25419
Oleg Barsky
2003-12-24 14:09
2004.01.09
MoveFile в консольном приложении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский