1.Windows程式員開始時總是複製一段代碼然後做相應修改
2.常量首碼註記:
CS —— Class Stye CW —— Create Window DT —— Draw Text
IDI —— ID of Icon IDC —— ID of Cursor MB —— MessageBox
SND —— Sound WM —— Window Message WS —— Window Style
WParam —— WcharParam (16bit) LParam —— LongParam(32bit) 預設為16位系統,而在32位系統中,兩者均為32bit,W失去意義
LRESULT —— LongResult
#define CALLBACK __stdcall
HINSTANCE —— Handle of Instance HWND —— Handle of Window HDC —— Handle of Device Content 32bit
3.RegisterClass之後根據WndClass中的classname來CreateWindow,而classname屬性在WndClass最後,多少有些降低了它的重要性,讓人容易遺忘,至少剛開始時我是這樣的。
4.32bit系統無需判斷hprevinstance,而16bit系統需要以節省記憶體。
5.是否可理解所有視窗都是桌面視窗的子視窗或者間接子視窗?
6.UpdateWindow(hwnd)向hwnd發送WM_PAINT訊息。
7.WM_Quit導致GetMessage返回0,訊息迴圈結束。而PostQuitMessage通常用於響應WM_Destroy來向訊息佇列發送WM_Quit訊息。為何不直接發送WM_Quit訊息?如果這樣的話在程式關閉之前你無法做任何其他動作。WM_Destroy響應函數可用於程式清理工作。
8.TraslateMsg進行鍵盤轉換,DispatchMsg將訊息交給視窗,而視窗將其交給適合的訊息處理函數。
9.Windows程式所做的一切都是處理響應發送給視窗過程的訊息。
10.Windows會在建立之後給視窗發送WM_CREATE訊息,而不是之前一直潛意識中誤解的WM_CREATE訊息的響應函數來負責Create Windows。
11.訊息迴圈和視窗過程並非並發進行。
12.DefWndProc也是你視窗的一部分。