опубликован 29-01-2002 12:11 MSK
Запускается поток:
AfxBeginThread(prcs,this,THREAD_PRIORITY_NORMAL);Из этого потока (prcs) не могу перерисовывать окно программы
а это из потока нужно делать не один раз.
Как заставить из потока перерисовываться окно?
Поясню:
Предположим ипсользую класс:
class CTmpView : public CScrollView
в нем определена функция реакции на пункт меню:
protected:
//{{AFX_MSG(CTmpView)
afx_msg void OnStart();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
в этой функции запускается поток (функция prcs)
void CTmpView::OnStart()
{
// TODO: Add your command handler code here
AfxBeginThread(prcs,this,THREAD_PRIORITY_NORMAL);
}
UINT prcs(LPVOID param)
{
// всякие операции изменяют информацию для отрисовки в CTmpView
// далее надо перерисовать окно ???
// ни один из приведенных ниже вариантов не заставляет окно перерисоваться
RedrawWindow(((CTmpView*)param)->GetSafeHwnd(),NULL,NULL,RDW_FRAME);
UpdateWindow(((CTmpView*)param)->GetSafeHwnd());
((CTmpView*)param)->PostMessage(WM_PAINT);
((CTmpView*)param)->SendMessage(WM_PAINT);
}
Что делать?