GetMessage について何かおもしろい使い方がないかな・・。と調べてみましたら、
おもしろい記述が見つかりました。
GetMessage はメッセージループの部分に書かれており、大抵は
while (GetMessage(&msg, NULL, 0, 0)){
TranslateMessage(&msg);
DispatchMessage(&msg);
}
という風に書かれています。
私がいつも見に行く解説サイトを見直してみてもそうでしたし、
過去に書いたソースコードもそうなっていました。
ですが、 MSDN の GetMessage 関数の説明を見てみますと、
MSDN:GetMessage 関数
エラーが発生した場合、-1 が返ります。
たとえば、hWnd パラメータで無効なウィンドウハンドルを指定した場合や、
lpMsg で無効なポインタを指定した場合は、エラーが発生します。拡張エラー情報を取得するには、 関数を使います。
ということで。
そして、英語版MSDNではこんな感じのサンプルが上がっていました。
BOOL bRet;
while((bRet = GetMessage( &msg, hWnd, 0, 0 )) != 0) {
if (bRet == -1) {
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
うーむ・・。
GetMessage の戻り値は BOOL のはずでは・・? と。思ってしまったり。
でも、BOOL って結局 int になってますから、 型としてはあっているんでしょうけど。
にしても・・。 BOOL だったら、 == 0 or != 0 でせう。と。
まぁー・・。そんな感じで。