Есть проект на основе диалогового окна.
По кнопочке создаю новый поток
Вот такой
UINT ThreadFunction(LPVOID pParam)
{
CThreadDlg dlg;
dlg.Create(CThreadDlg::IDD);
dlg.ShowWindow(SW_SHOW);
dlg.m_TextOut1 = "Text on Line One";
dlg.UpdateData(FALSE);
//...
}
Диалог в этом потоке рисуется поверх основного диалога и доступ к основному диалогу не возможен пока не закончится поток.
Мне нужно в новом потоке сделать диалог и в него выводить.
Что я делаю не правильно?
Здравствуйте orion9, Вы писали:
O>Есть проект на основе диалогового окна.
O>По кнопочке создаю новый поток
O>Вот такой
O>O>UINT ThreadFunction(LPVOID pParam)
O>{
O> CThreadDlg dlg;
O> dlg.Create(CThreadDlg::IDD);
O> dlg.ShowWindow(SW_SHOW);
O> dlg.m_TextOut1 = "Text on Line One";
O> dlg.UpdateData(FALSE);
O>//...
O>}
O>
O>Диалог в этом потоке рисуется поверх основного диалога и доступ к основному диалогу не возможен пока не закончится поток.
Нужно делать поток чз наследованный от CWinThread, если в нем создаются оконные объекты. Это потому что сразу очереди сообщений не будет. Ты создаешь обычный — вызывай тогда DoModal вместо Create. DoModal запускает цикл выборки сообщений.
Ты и не рассказал толком, что у тебя происходит.
Как создаешь и тд. Что конкретно ты пытаешься делать с диалогами ?
И какой диалог не доступен ?
Если что, свисти...
Есть поток (в виде функции), мне нужно в этом потоке сделать окошко(диалог) и в него выводить статистику работы данного потока. По окончании потока окошко закрыть. Сколько запущено потоков столько окошек.
Как это сделать?