Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message.
你只响应WM_INITDIALOG和WM_CLOSE两个消息,其他的消息没法处理,当然卡死了。
MSDN上说了,不处理的消息就要返回false,不知道这里用DefWindowProc行不行,从来没有试过,个人认为也许大概说不准应该可以吧。
另外建议LZ不要在一个invoke里面用俩addr,否则出错地。