while ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE ) || m_iThreadFlag == 1)
{
if ( GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
break;
}
}
Проблема с DispatchMessage
Помогите, пожалуйста, с возникшей проблемой.
Мне надо было ждать в цикле изменения переменной, и я использовал ниже приведенный цикл
Код:
но цикл застревает на DispatchMessage пока диалог не получит кокой ни будь месидж, например WM_MOUSEMOVE.
Если возможно предложите альтернативный вариант, или подскажите как решить проблему.
Заранее благодарю.
Цитата: Arsen
Всем добрый день!
Помогите, пожалуйста, с возникшей проблемой.
Мне надо было ждать в цикле изменения переменной, и я использовал ниже приведенный цикл
но цикл застревает на DispatchMessage пока диалог не получит кокой ни будь месидж, например WM_MOUSEMOVE.
Если возможно предложите альтернативный вариант, или подскажите как решить проблему.
Заранее благодарю.
Помогите, пожалуйста, с возникшей проблемой.
Мне надо было ждать в цикле изменения переменной, и я использовал ниже приведенный цикл
Код:
while ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE ) || m_iThreadFlag == 1)
{
if ( GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
break;
}
}
{
if ( GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
break;
}
}
но цикл застревает на DispatchMessage пока диалог не получит кокой ни будь месидж, например WM_MOUSEMOVE.
Если возможно предложите альтернативный вариант, или подскажите как решить проблему.
Заранее благодарю.
Все верно, циклится на GetMessage... Я бы лучше написал следущее...
Код:
while(m_iThreadFlag == 1)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE ))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
Большое спасибо!!!
Arsen, не ищи геморой на свою Ж. Создай отдельный поток.