GetMessageなどで取得した、ウィンドウメッセージ情報を格納しているのがMSG。
MSG (winuser.h) - Win32 apps | Microsoft Docs
単純にはそうだが、メッセージループとなると、不思議な部分もある。
こういうMSG構造体のmessageの値を記録しておくログ関数を作っておいて、
メッセージループ付近にログを配置。
ウィンドウを表示するだけ。
win32apiのGetMessage関数について質問です。第二引数のハン... - Yahoo!知恵袋
GetMessageにNULLを指定していて、これは呼び出し側のスレッド(つまりこのメインウィンドウスレッド)のすべてのウィンドウメッセージと、PostThreadMessageでこちらに送られたものを指す。
それにしても、msg.logを見てみると、00000001(つまりWM_CREATE)が無い。
メッセージループの前にCreateWindowしているけど、そこの時点でWM_CREATE処理しているため、記録されない。
00000012はWM_QUIT。
それにしても不思議なのは、WM_QUITは最後なのであるとして、WM_CLOSEやWM_DESTROYが記録されないのは不思議。スレッドが違うのかな。
通常終了じゃなくて、デバッガ終了だと、
0000000fはWM_PAINT。
最初の描画があるので当然呼ばれる。
最大化などでWM_SYSCOMMAND。
00000112がWM_SYSCOMMAND。
でもグリグリとウィンドウを動かしてもWM_MOVEとかは記録が無かった。
Sample/winapi/MSG/MSG/src/MSG at master · bg1bgst333/Sample · GitHub