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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.04.2013, 16:51   #1
CraZZZy-GameRRR
Пользователь
 
Регистрация: 15.04.2010
Сообщений: 98
По умолчанию Изменение элемента окна из другого потока

Хочу в потоке изменить текст на кнопке, но он не меняется.
Код:
DWORD WINAPI threadFunc(PVOID pParam) {
	HWND hWnd;
	hWnd = (HWND) AfxGetMainWnd();
	HWND BtnHWND = GetDlgItem(hWnd, IDC_BUTTON1);

	::SetWindowText(BtnHWND, L"3 сек.");
	Sleep(1000);
	::SetWindowText(BtnHWND, L"2 сек.");
	Sleep(1000);
	::SetWindowText(BtnHWND, L"1 сек.");
	Sleep(1000);
	::AfxMessageBox(L"Время вышло!");
	return 0;
}

void CthrDlg::OnBnClickedButton1()
{
	CreateThread(NULL, 0, threadFunc, NULL, 0, NULL);
}
Посмотрел под дебаггером содержимое переменной hWND - 0xcccccccc {unused=??? }. Почему не находит окно?
CraZZZy-GameRRR вне форума Ответить с цитированием
Старый 04.04.2013, 17:43   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

AfxGetMainWnd() возвращает "главное" окно для текущего потока. MFC не очень многопоточно, чтоб не сказать более.

Зачем надо делать из потока?
Уж если очень надо, передавайте прямо готовый CWnd* в поток, но лучше дважды подумать...
waleri вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ из другого потока Invoke delias C# (си шарп) 17 06.06.2013 22:33
Закрытие окна из другого потока 220Volt Win Api 2 04.01.2013 16:20
Доступ к компоненту WinForms из другого потока. the27mart C# (си шарп) 1 22.06.2012 16:16
Поток блокирует выполнение другого потока Levsha100 Общие вопросы Delphi 5 06.04.2012 08:05
[C#] Изменение текста label1 из другого потока/класса GregRUS Помощь студентам 3 11.01.2012 09:24