Mfc Поток И Диалог

harimambura

New member
05.02.2013
1
0
#1
Здравствуйте, форумчане.
Очень нуждаюсь в вашей помощи. вобщем вопрос следующий: необходимо в отдельном потоке отобразить окно диалога модально, при этом из основного потока использовать функции, описанные в классе этого диалога.

пробую делать так (общий вид кода, только основа):

C++:
#include "InformationDlg.h"

CInformationDlg *InfoDlg= new CInformationDlg(L"");
//***************************************************
UINT ThreadProcess( LPVOID pParam )
{
InfoDlg->DoModal();

UINT nResult = 1;
return nResult;
}

void myfunc() 
{
pThread = AfxBeginThread(ThreadProcess, this, THREAD_PRIORITY_NORMAL, 0,0 );
ASSERT(pThread);
InfoDlg->InitProgress2(1,12);
InfoDlg->SetCaption(L"txt");
InfoDlg->SetProgress2(6);
}
в хедере описан CWinThread* pThread;

но после того, как поток запустился, на первой же функции InfoDlg->InitProgress2(1,12); бьет ошибку "an invalid argument was encountered", это в релизе, а в дебаге "Debug Assertion filed! file: f:\sp\vctools\vc7libs\ship\atlmfc\include\afxcmn.inl line:461".
далее выполнение функции myfunc обрывается, хоть диалог и отображается. Что не так?