Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2009, 12:53   #1
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию Работа с объектами Windows

Пишу программу для перемещения кнопки пуск по панели задач. В сути она уезжает от курсора ))). Для означения типа панели задач и пуска использовал hWnd. Но есть лаг-этот тип не включает операторов (Left, Top, Width, Height). Соответственно нижеприведённые операции с ним не выполнить. Может у кого нибудь есть советы?

Код:
function Pusk(StartBtnWnd, StartBtnBmp: hWnd; Shift: TShiftState;
X, Y: Integer);
var
index:integer;
begin
StartBtnWnd:=FindWindow('Shell_TrayWnd', nil);
StartBtnBmp:=FindWindowEx(StartBtnWnd, 0, 'Button', nil) ;
index:=random(4);
case index of
0: StartBtnBmp.Left:=StartBtnBmp.Left+StartBtnBmp.Width;
1: StartBtnBmp.Left:=StartBtnBmp.Left-StartBtnBmp.Width;
2: StartBtnBmp.Top:=StartBtnBmp.Top+StartBtnBmp.Height;
3: StartBtnBmp.Top:=StartBtnBmp.Top-StartBtnBmp.Height;
end;
if StartBtnBmp.Left<0 then
StartBtnBmp.Left:=0;
if (StartBtnBmp.Left+StartBtnBmp.Width)>StartBtnWnd.Width then
StartBtnBmp.Left:=StartBtnWnd.Width-StartBtnBmp.Width;
if StartBtnBmp.Top<0 then
StartBtnBmp.Top:=0;
if (StartBtnBmp.Top+StartBtnBmp.Height)>StartBtnWnd.Height then
StartBtnBmp.Top:=StartBtnWnd.Height-StartBtnBmp.Height;
end;
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ

Последний раз редактировалось c0zak; 06.11.2009 в 13:36.
c0zak вне форума Ответить с цитированием
Старый 06.11.2009, 13:01   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
этот тип не contain
А по русски?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2009, 13:27   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так что нужно-то? Как найти кнопку "Пуск"?
mihali4 вне форума Ответить с цитированием
Старый 06.11.2009, 13:31   #4
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А по русски?
Извиняюсь, исправил ))
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Старый 06.11.2009, 13:34   #5
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Так что нужно-то? Как найти кнопку "Пуск"?
Кнопка уже найдена. Юзал такой код:
StartBtnWnd:=FindWindow('Shell_Tray Wnd', nil);
StartBtnBmp:=FindWindowEx(StartBtnW nd, 0, 'Button', nil) ;

Проблема с типом-hWnd. Он не позволяет использовать нужные мне операторы (Left, Top, Width, Height). Вот и вопрос-есть ли альтернативный тип, который включает их или альтернативные операторы?
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Старый 06.11.2009, 13:42   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Он не позволяет использовать нужные мне операторы
SetWindowPlacement как раз используется для решения подобных задач
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.11.2009, 14:05   #7
c0zak
Пользователь
 
Регистрация: 06.11.2009
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
SetWindowPlacement как раз используется для решения подобных задач
Спасибо. Буду разбираться с этой функцией ))
Твои сны-как лотерея, это то что мы умеем... ©СЛОТ
c0zak вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с объектами Word в C++ Ладушка Общие вопросы C/C++ 3 22.09.2015 16:51
Работа с классами и объектами Shavminator Общие вопросы Delphi 7 18.12.2009 04:11
Работа с роутингом windows Romany4 Общие вопросы Delphi 4 27.09.2009 05:42
работа с объектами (плиз, помогите разобраться) HoOpe Помощь студентам 2 11.03.2009 14:37
нужна помощь - работа с объектами и не только freemotivation Паскаль, Turbo Pascal, PascalABC.NET 6 22.11.2008 01:29