Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не возвращает хендл окна

33K
06 февраля 2012 года
iprog
60 / / 26.01.2010
Здравствуйте!
Выполняя следующий код, я пытаюсь получить хендл окна часов Windows (естественно, чтобы поместить туда свои):
 
Код:
RECT *a;
HWND tr = FindWindow("Shell_TrayWnd", "");
HWND st = FindWindowEx(tr, 0, "traynotifywnd", "");
HWND cl = FindWindowEx(st, 0, "trayclockwclass", "");
GetWindowRect(cl, a);
this->Width = a->Right - a->Left;
this->Height = a->Bottom - a->Top;
this->Top = 0;
this->Left = 0;
SetParent(this->Handle, cl);


Во-первых, когда этот код находится в обработчике события формы или компонента, C++ Builder никак не хочет "понять", что SetParent -- функция API, а не формы, но я перенес этот код в процедуру WinMain. Там код работает нормально, переменные tr и st не пустые, а вот 4-ая строка хендла не возвращает. В Visual Basic аналогичный код на той же ОС выполняется корректно. Подскажите, пожалуйста, как наладить работу этого кода? Спасибо.
14
06 февраля 2012 года
Phodopus
3.3K / / 19.06.2008
::SetParent()
и пробуйте где изначально хотели. Классы (судя по WinXP) вроде верные
33K
07 февраля 2012 года
iprog
60 / / 26.01.2010
Цитата: Phodopus
::SetParent()
и пробуйте где изначально хотели. Классы (судя по WinXP) вроде верные



Попробовал. Точно также эта строка не возвращает хендл

 
Код:
HWND cl = FindWindowEx(st, 0, "trayclockwclass", "");


Я написал на VB программку, в которую передаю хендл окна своих часов, и эта программка ставит окно в трей (приведенным выше кодом). В этом случае работает все нормально, но мне нужно, чтобы все на С++ было :)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог