Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Передача HWND  (Прочитано 14379 раз)
0 Пользователей и 1 Гость смотрят эту тему.
aleksk
Гость
« : 21-07-2006 07:03 » 

Подскажите есть ли какой нибудь способ передать HWND в другую функцию ,
кроме как глобальную переменную?Спасибо.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #1 : 21-07-2006 08:12 » 

aleksk, Улыбаюсь
вот так

void f(HWND h)
{

}
Записан

aleksk
Гость
« Ответ #2 : 21-07-2006 08:43 » 

Спасибо!
Но так она всё равно должна быть глобальной.
Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #3 : 21-07-2006 09:56 » 

Спасибо!
Но так она всё равно должна быть глобальной.
Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
aleksk, можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы.
Записан

Странно всё это....
Артем
Опытный

nz
Offline Offline
Пол: Мужской
Beware the wolf in sheep's clothing.


« Ответ #4 : 21-07-2006 11:44 » 

Спасибо!
Но так она всё равно должна быть глобальной.
Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
aleksk, можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы.

похоже имеется ввиду следующее:

 есть уже запущенная функция (обработчик уже показанного окна), и в какой-то момент надо передать в нее еще один параметр (HWND). Если я прав, тогда это вопрос о межпотоковом обмене данными Улыбаюсь. Т.е. как из функции, выполняющейся в одном потоке передать параметр в функцию, (уже) выполняюшуюся в другом потоке, миную глобальные переменные...



« Последнее редактирование: 21-07-2006 11:46 от Артем » Записан
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #5 : 21-07-2006 11:59 » 

похоже имеется ввиду следующее:

 есть уже запущенная функция (обработчик уже показанного окна), и в какой-то момент надо передать в нее еще один параметр (HWND). Если я прав, тогда это вопрос о межпотоковом обмене данными Улыбаюсь. Т.е. как из функции, выполняющейся в одном потоке передать параметр в функцию, (уже) выполняюшуюся в другом потоке, миную глобальные переменные...

Ну в таком случае можно например передавить сразу этот несчастный HWND в обе точки  ипосле какого момента считать его пригодным для использования после того как кто-то его заполнить, можно следелать это на мьютексах например

и всё равно без контекста сложновато.
тут должно быть долгое размышление о не возможности постороения решения на пустом месте Ага
Записан

Странно всё это....
aleksk
Гость
« Ответ #6 : 21-07-2006 14:34 » 

Да нет ребята всё намного проще (наверное).
У меня окно с дочерними окнами (кнопками),есть так же еще одно окно созданное (в обработчике WM_CREATE главного окна) но не показанное.
Я хочу ,что бы при нажатии на кнопку это окно выводилось вместо нарисованного.
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #7 : 21-07-2006 14:47 » 

Я хочу ,что бы при нажатии на кнопку это окно выводилось вместо нарисованного.
- а чтО было нарисовано?  То, вместо чего?
Записан

aleksk
Гость
« Ответ #8 : 21-07-2006 14:52 » 

Нарисованно окно WS_POPUP  с кнопками!!!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #9 : 21-07-2006 15:13 » 

aleksk, надо знать ID кнопки.

Достаёшь кнопку
GetDlgItem(ID)

и убиваешь
GetDlgItem(ID)->DestroyWindow();

затем ставший быть свободным вышеупомянутый ID указываешь при создании нового элемента
Записан

aleksk
Гость
« Ответ #10 : 21-07-2006 15:20 » 

У меня в качестве кнопки дочернее окно .
В обработчике сообщения WM_LBUTTONDOWN этого (дочернего) окна я хочу показать
(ShowWindow (htestwnd, SW_SHOW )) созданное в другой функции окно HWND htestwnd.
Как передать этот htestwnd?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #11 : 21-07-2006 15:22 » 

aleksk, а, дак раз дочернее окно - так ты сохраняй указатель на окно-то

и будешь

ShowWindow (pWin->m_hWnd, SW_SHOW )
« Последнее редактирование: 21-07-2006 15:24 от Алексей1153 » Записан

aleksk
Гость
« Ответ #12 : 21-07-2006 15:26 » 

А зачем мне это Не понял
Записан
aleksk
Гость
« Ответ #13 : 21-07-2006 15:26 » 

NO MFC голый API
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #14 : 21-07-2006 15:30 » 

у меня щас мсдн не установлена, но уверен, в апи есть точные аналоги. Ну запомни не указатель, а хендл, в конце-то на конце Улыбаюсь))
Записан

aleksk
Гость
« Ответ #15 : 21-07-2006 15:37 » 

Обьясни  пожалуйста зачем мне хендл окна-кнопки?
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #16 : 21-07-2006 16:40 » 

aleksk, чёт я не пойму.

1) ты же говоришь, что у тебя не кнопка, а дочернее окно - диалог, я по крайней мере так понял
2) хендл элемента управления нет смысла хранить, как и указатель на. А вот ID - рулит


-------
расскажи ещё раз и более связно- что ты имеешь и что делаешь, и что при этом получается, а что нет
Записан

Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #17 : 21-07-2006 16:44 » 

aleksk, ася есть? долбись, я тут щас
Записан

Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #18 : 21-07-2006 17:58 » 

Алексей1153, Посмотри соседнюю тему https://forum.shelek.ru/index.php/topic,9247.0.html , он там приводил код. Как бы кнопка у него самодельная. Без структуры его программы совсем не понятно как делать.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


WWW
« Ответ #19 : 21-07-2006 18:05 » 

Finch, мы уже в асе перетёрли Улыбаюсь
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines