aleksk
Гость
|
|
« : 21-07-2006 07:03 » |
|
Подскажите есть ли какой нибудь способ передать HWND в другую функцию , кроме как глобальную переменную?Спасибо.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 21-07-2006 08:12 » |
|
aleksk, вот так void f(HWND h) { }
|
|
|
Записан
|
|
|
|
aleksk
Гость
|
|
« Ответ #2 : 21-07-2006 08:43 » |
|
Спасибо! Но так она всё равно должна быть глобальной. Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #3 : 21-07-2006 09:56 » |
|
Спасибо! Но так она всё равно должна быть глобальной. Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
aleksk, можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы.
|
|
|
Записан
|
Странно всё это....
|
|
|
Артем
Опытный
Offline
Пол:
Beware the wolf in sheep's clothing.
|
|
« Ответ #4 : 21-07-2006 11:44 » |
|
Спасибо! Но так она всё равно должна быть глобальной. Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
aleksk, можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы. похоже имеется ввиду следующее: есть уже запущенная функция (обработчик уже показанного окна), и в какой-то момент надо передать в нее еще один параметр (HWND). Если я прав, тогда это вопрос о межпотоковом обмене данными . Т.е. как из функции, выполняющейся в одном потоке передать параметр в функцию, (уже) выполняюшуюся в другом потоке, миную глобальные переменные...
|
|
« Последнее редактирование: 21-07-2006 11:46 от Артем »
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #5 : 21-07-2006 11:59 » |
|
похоже имеется ввиду следующее: есть уже запущенная функция (обработчик уже показанного окна), и в какой-то момент надо передать в нее еще один параметр (HWND). Если я прав, тогда это вопрос о межпотоковом обмене данными . Т.е. как из функции, выполняющейся в одном потоке передать параметр в функцию, (уже) выполняюшуюся в другом потоке, миную глобальные переменные... Ну в таком случае можно например передавить сразу этот несчастный HWND в обе точки ипосле какого момента считать его пригодным для использования после того как кто-то его заполнить, можно следелать это на мьютексах например и всё равно без контекста сложновато. тут должно быть долгое размышление о не возможности постороения решения на пустом месте
|
|
|
Записан
|
Странно всё это....
|
|
|
aleksk
Гость
|
|
« Ответ #6 : 21-07-2006 14:34 » |
|
Да нет ребята всё намного проще (наверное). У меня окно с дочерними окнами (кнопками),есть так же еще одно окно созданное (в обработчике WM_CREATE главного окна) но не показанное. Я хочу ,что бы при нажатии на кнопку это окно выводилось вместо нарисованного.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #7 : 21-07-2006 14:47 » |
|
Я хочу ,что бы при нажатии на кнопку это окно выводилось вместо нарисованного.
- а чтО было нарисовано? То, вместо чего?
|
|
|
Записан
|
|
|
|
aleksk
Гость
|
|
« Ответ #8 : 21-07-2006 14:52 » |
|
Нарисованно окно WS_POPUP с кнопками!!!
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #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?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #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
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 21-07-2006 15:30 » |
|
у меня щас мсдн не установлена, но уверен, в апи есть точные аналоги. Ну запомни не указатель, а хендл, в конце-то на конце ))
|
|
|
Записан
|
|
|
|
aleksk
Гость
|
|
« Ответ #15 : 21-07-2006 15:37 » |
|
Обьясни пожалуйста зачем мне хендл окна-кнопки?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #16 : 21-07-2006 16:40 » |
|
aleksk, чёт я не пойму.
1) ты же говоришь, что у тебя не кнопка, а дочернее окно - диалог, я по крайней мере так понял 2) хендл элемента управления нет смысла хранить, как и указатель на. А вот ID - рулит
------- расскажи ещё раз и более связно- что ты имеешь и что делаешь, и что при этом получается, а что нет
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #17 : 21-07-2006 16:44 » |
|
aleksk, ася есть? долбись, я тут щас
|
|
|
Записан
|
|
|
|
Finch
Спокойный
Администратор
Offline
Пол:
Пролетал мимо
|
|
« Ответ #18 : 21-07-2006 17:58 » |
|
Алексей1153, Посмотри соседнюю тему https://forum.shelek.ru/index.php/topic,9247.0.html , он там приводил код. Как бы кнопка у него самодельная. Без структуры его программы совсем не понятно как делать.
|
|
|
Записан
|
Не будите спашяго дракона. Джаффар (Коша)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #19 : 21-07-2006 18:05 » |
|
Finch, мы уже в асе перетёрли
|
|
|
Записан
|
|
|
|
|