Instead of running WM_QUIT, use a flag to quit the loop. This fixes

problems when a console window is opened.
This commit is contained in:
Glenn Maynard
2006-02-14 03:26:27 +00:00
parent c230ba2b72
commit e92231f0a9
3 changed files with 12 additions and 4 deletions
@@ -337,14 +337,14 @@ protected:
if( msg == WM_USER )
{
m_iResult = WSAGETASYNCERROR( lParam );
PostQuitMessage( 0 );
StopRunning();
return true;
}
if( msg == WM_USER+1 )
{
m_iResult = 0;
PostQuitMessage( 0 );
StopRunning();
return true;
}
@@ -38,8 +38,9 @@ MessageWindow::~MessageWindow()
void MessageWindow::Run()
{
/* Process messages until we get WM_QUIT. */
while( 1 )
/* Process messages until StopRunning is called. */
m_bDone = false;
while( !m_bDone )
{
MSG msg;
int iRet = GetMessage( &msg, m_hWnd, 0, 0 );
@@ -50,6 +51,11 @@ void MessageWindow::Run()
}
}
void MessageWindow::StopRunning()
{
m_bDone = true;
}
LRESULT CALLBACK MessageWindow::WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
MessageWindow *pThis = (MessageWindow *) GetProp( hWnd, "MessageWindow" );
@@ -18,10 +18,12 @@ public:
protected:
virtual bool HandleMessage( UINT msg, WPARAM wParam, LPARAM lParam ) { return false; }
void StopRunning();
private:
static LRESULT CALLBACK WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam );
HWND m_hWnd;
bool m_bDone;
};
#endif