powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как из дочернего потока сделать SendMessage контролу в диалоге?
5 сообщений из 5, страница 1 из 1
Как из дочернего потока сделать SendMessage контролу в диалоге?
    #34681783
egghead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

У меня есть SDI app. В диалоге у меня порождается поток. Мне из потока
нужно сделать SendMessage для кнопки диалога.
Как это проще сделать?

FindWindow - SendMessage или по другому?

Заранее спасибо!
...
Рейтинг: 0 / 0
Как из дочернего потока сделать SendMessage контролу в диалоге?
    #34681833
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перед созданием потока возьми хендл кнопки и передай этот хендл в поток как параметр или как глобальную константу если параметры использовать лень.
...
Рейтинг: 0 / 0
Как из дочернего потока сделать SendMessage контролу в диалоге?
    #34682351
egghead
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

А вот у меня еще один вопрос по потокам.
Из главного потока начинаются 2 потока: первый поток формирует отчет о результате работы второго. Но свою работу 1 поток должен начать только после завершения второго. Подскажите как это реализовать?
Я так понимаю, что нужно через WaitSingleForObject, но вот такой код не пашет. Чего то не то я делаю явно


HANDLE hThread;

//поток формурующий отчет
DWORD WINAPI Alert(LPVOID lpVoid)
{
HANDLE hThread = (HANDLE)lpVoid;

DWORD DW = WaitForSingleObject(hThread, INFINITE);

AfxMessageBox("Alert");

return NO_ERROR;
}

//этот поток по завершении работы должен дать команду потоку Alert на формирование отчета
DWORD WINAPI Do(LPVOID lpVoid)
{
for (int i = 0; i < 10000; i++);


return NO_ERROR;
}

void CwinterDlg::OnBnClickedCancel()
{
DWORD dwThreadId1, dwThreadId2 = 0;

HANDLE hAlertThread=CreateThread(NULL, 0, &Alert, (LPVOID)&hThread, 0, &dwThreadId1);
hThread = CreateThread(NULL, 0, &Do, NULL, 0, &dwThreadId2);
}
...
Рейтинг: 0 / 0
Как из дочернего потока сделать SendMessage контролу в диалоге?
    #34683116
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egghead пишет:
> У меня есть SDI app. В диалоге у меня порождается поток. Мне из потока
> нужно сделать SendMessage для кнопки диалога.

Как хэндл получить - сказали уже, но напомню, не
SendMessage, а обязательно SendMessageTimeout !!!
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как из дочернего потока сделать SendMessage контролу в диалоге?
    #34683761
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eggheadЯ так понимаю, что нужно через WaitSingleForObject, но вот такой код не пашет. Чего то не то я делаю явно
Код: plaintext
1.
	HANDLE hAlertThread=CreateThread(NULL,  0 , &Alert, (LPVOID)&hThread,  0 , &dwThreadId1);    	
	hThread = CreateThread(NULL,  0 , &Do, NULL,  0 , &dwThreadId2);    	

Местами эти две строки поменяй. К моменту когда ожидающий поток доходит до WaitForSingleObject поток который надо ждать уже должен существовать.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как из дочернего потока сделать SendMessage контролу в диалоге?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]