|
第 |
Last Updated 2002/10/22 |
![]() ![]() Visual C++ API | |
|
|
| PostThreadMessage |
PostThreadMessage() にて FALSE が返る場合がある. (GetLastError() は 1444) この原因はポストされる側のスレッドがキューを割り当てていないのが原因 である. (ウィンドウを開いていない場合) (ウィンドウを開けばキューは割り当てられる) スレッドが始めてメッセージキュー関連の関数を呼び出すまで,OS はその スレッドにキューを割り当てない.(資源の浪費をおさえるのが目的) キューがないのでメッセージをポストできない. それを解決するには,ポストされる側のアプリケーションの始めに1回だけ PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE); を実行する. こうすればキューが割り当てられる.