メールを拝見しました、ありがとうございます
少し調べたところ原因が分かりました
SetUserWindow を使用する場合はプロセスに対するメッセージも処理しないと
件の現象が発生するようです
なので、
if( PeekMessage( &msg, hWnd, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg ) ;
DispatchMessage( &msg ) ;
}
こちらの部分にプロセス自体のメッセージを受け取るための hWnd の部分を NULL にした
同様のコードを加えて
if( PeekMessage( &msg, hWnd, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg ) ;
DispatchMessage( &msg ) ;
}
if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg ) ;
DispatchMessage( &msg ) ;
}
更にメッセージは一度に沢山来ることもありますので
while( PeekMessage( &msg, hWnd, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg ) ;
DispatchMessage( &msg ) ;
}
while( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
{
TranslateMessage( &msg ) ;
DispatchMessage( &msg ) ;
}
if ではなく while にします
これで私の環境では件の現象は発生しなくなりました
よろしければお試しください