天天看點

WindowProc和DefWindowProc的差別

1.

WindowProc是你給自己的視窗定義的視窗處理函數

DefWindowProc是windows平台提供的預設視窗處理函數

如果某些消息你不需要做特别的處理,調用DefWindowProc進行處理就可以了,不需要你自己再去些那些windows的"标準動作"

2.

根據1,顯然,你隻能定義WindowProc而不能定義DefWindowProc

看看MFC的CWnd源碼就一目了然了

LRESULT CWnd::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)

{

// OnWndMsg does most of the work, except for DefWindowProc call

LRESULT lResult = 0;

if (!OnWndMsg(message, wParam, lParam, &lResult)) // 如果消息是需要自己處理的,

  //處理後就不必讓windows系統進行預設處理了

lResult = DefWindowProc(message, wParam, lParam); // 自己沒有處理的就交給windows去做

return lResult;

}

繼續閱讀