GetMessage遇到錯誤時,會返回-1,即便它的返回值被定義成BOOL。由於BOOL被定義爲UINT。 調用GetMessage的正確寫法是 while (GetMessage(&Msg, NULL, 0, 0) > 0),這樣能夠正確處理函數出錯以及程序退出的狀況。函數
能夠用PostMessage或SendMessage來發送消息。PostMessage把消息放入消息隊列再當即返回。這意味着你調用PostMessage後消息可能被處理,也可能還沒被處理。SendMessage則把消息送往窗口而且窗口沒有結束處理消息以前不返回。隊列
模態對話框過程和窗口過程有一些重要的差異,其中第一第二點也適用於非模態對話框。消息隊列
用CreateDialog能夠建立非模態對話框,它沒有本身的消息循環。而DialogBox()擁有本身的消息循環而且直到對話框關閉才返回。 非模態對話框過程,不須要調用EndDialog,能夠像常規的窗口同樣調用DestroyWindow。循環
對話框就是一個窗口,而且大多數對話框的API能夠工做於任何窗口。程序