OnWndMsg函式的處理過程

2021-09-30 11:05:51 字數 1074 閱讀 2057

在mfc中, onwndmsg函式的處理過程如下:

1)首先,判斷訊息是否有訊息響應函式,例如onlbuttondown()處理「左鍵按下」這一訊息。

2)判斷方法是在相應的視窗類中查詢所需的訊息響應函式。這裡以mfc 的工程draw為例,onwndmsg會在cdrawtest.h中查詢,看看declare_message_map()之上,

兩個afx_msg注釋巨集之間是否有相應的訊息響應函式的原型宣告,如下:  

protected:

//}afx_msg

declare_message_map()

接著,再到cdrawview.cpp中,看看begin_message_map()和end_message_map()這兩個巨集之間是否有相應的訊息對映巨集,如下:

// cdrawview.cpp

implement_dyncreate(cdrawview, cview)

begin_message_map(cdrawview, cview)

//}afx_msg_map

// standard printing commands

on_command(id_file_print, cview::onfileprint)

on_command(id_file_print_direct, cview::onfileprint)

on_command(id_file_print_preview, cview::onfileprintpreview)

end_message_map()

3)如果通過1)、2)步驟,找到了訊息響應函式,那麼接著就會呼叫該響應函式,對訊息進行處理。

如果子類中沒有找到訊息響應函式,那麼就就給基類處理。

4)通過以上步驟,mfc就實現了具體的訊息對映,從而完成對訊息的響應。

5)函式onlbuttondown()的實現:

USB host處理過程

在usbh core.c中有乙個函式usbh process 這個函式很重要,main 函式每迴圈一次,它就執行一次,它處理所有usb核心狀態的變化,typedef enum host state 根據這個當前狀態 phost gstate 處於以上哪個狀態的不同,做出不同的處理過程。其中最重要的要...

Hadoop map reduce處理過程

1 在hadoop中,每個mapreduce任務都被初始化為乙個job。每個job又可以分成兩個階段 map階段和reduce階段 map函式接受乙個形式的輸入,然後同樣產生乙個形式的中間輸出,hadoop會負責將所有具有相同結果中間key值的value集合到一起傳給reduce函式,reduce函...

Openstack nova api 處理過程

乙個python函式示例 乙個python類的示例 所有的web請求引數都被封裝在environ這個dictionary中,start response函式讓人難以理解,其主要作用是設定reponse的http返回碼和http header.返回的list的乙個item對應於http respons...