在窗口類結構WNDCLASS中有一個成員lpfnWndProc指定了這一類型窗口的過程函數,也稱回調函數。回調函數的原理是這樣的,當應用程序收到給某一窗口的消息時(消息與窗口是相關的),就應該調用某一函數來處理這條消息。這一調用過程不用應用程序自己來實施,而由操作系統來完成,但是,回調函數本身的代碼必須由應用程序自己完成。
對於一條消息,操作系統到底調用應用程序中的哪個函數(回調函數)來處理呢?操作系統調用的就是接受消息的窗口所屬的類型中的lpfnWndProc成員指定的函數。每一種不同類型的窗口都有自己專用的回調函數,該函數就是通過lpfnWndProc成員指定的。
例如:汽車廠家生產汽車好比應用程序創建窗口,用戶使用汽車好比操作系統管理窗口,某種汽車在銷售前就指定好了修理站(類似回調函數),當用戶的汽車出現故障後(類似窗口收到消息),汽車用戶(類似操作系統)自己直接找到修理站去修理,不用廠家(類似應用程序)親自將車送到修理站去修理,但修理站還得由廠家事先建造好。