| 
			| 
					
						| 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 »  |  | 
 
 Спасибо!alekskНо так она всё равно должна быть глобальной.
 Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
 
 , можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы. |  
						| 
								|  |  
								|  |  Записан | 
 
 Странно всё это.... |  |  | 
	| 
			| 
					
						| Артем 
								Опытный    Offline 
								Пол:   
								Beware the wolf in sheep's clothing.
								
								
								
								
								
							 | 
								|  | « Ответ #4 : 21-07-2006 11:44 »  |  | 
 
 Спасибо!alekskНо так она всё равно должна быть глобальной.
 Мне нужно передать HWND только ,что созданного окна в обработчик уже показанного окна.
 
 , можно чуть подробней? без контеста тежеловато. пока что не вижу проблемы.похоже имеется ввиду следующее:  есть уже запущенная функция (обработчик уже показанного окна), и в какой-то момент надо передать в нее еще один параметр (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, мы уже в асе перетёрли   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	|  |