Hello!
I have Qt4 GUI project. It`s implemented as DLL. The main application which uses my DLL calling interface functions from MainThread. Here is the message loop of main application:
while(buckets_rendered<numRects && events!=0)
{
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
stat = MsgWaitForMultipleObjects(numHandles, handles, FALSE, INFINITE, QS_ALLINPUT);
if(stat == (WAIT_OBJECT_0 + numHandles))
{
continue;
}
else // message comes from the events
{
id = stat - WAIT_OBJECT_0;
--events;
// ...
}
}
while(buckets_rendered<numRects && events!=0)
{
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
stat = MsgWaitForMultipleObjects(numHandles, handles, FALSE, INFINITE, QS_ALLINPUT);
if(stat == (WAIT_OBJECT_0 + numHandles))
{
continue;
}
else // message comes from the events
{
id = stat - WAIT_OBJECT_0;
--events;
// ...
}
}
To copy to clipboard, switch view to plain text mode
All works fine with Qt 4.7.3, but when we use Qt 4.5.3 my DLL is ‘blocked’! When I click some button in my GUI app, nothing happens. But when next I click right mouse button some events occure and I see an effect from the first left mouse button click and an effect from right button click…Why only right mouse button click force repaint? I`m confused…
Bookmarks