vc 讀書筆記 20050909

2021-04-01 17:57:26 字數 972 閱讀 3027

一、傳統控制項

控制項通過向父視窗傳送控制項通知訊息來表明發生了某種事件.例如,當使用者在按鈕上單擊滑鼠時,按鈕控制項會向父視窗傳送bn_clicked訊息.傳統控制項的通知訊息實際上是通過wm_command訊息發給父視窗的(滾動條除外),在該訊息的wparam中含有通知訊息碼(如bn_clicked)和控制項的id,在lparam中則包含了控制項的控制代碼.

傳統控制項的訊息對映巨集是on_***x,其中***x表示通知訊息碼,如bn_clicked.on_***x訊息對映如下所示,該巨集有兩個引數,乙個是控制項的id,乙個是訊息處理函式名.

on_***x(nid, memberfxn)

訊息處理函式的宣告應該有如下形式: 

afx_msg void memberfxn( ); 

例如,某按鈕的bn_clicked訊息的訊息對映及其處理函式的宣告如下所示 

on_bn_clicked(idc_add,onadd) 

afx_msg void onadd( ); 

技巧:有時,為了處理方便,需要把多個id連續的控制項發出的相同訊息對映到同乙個處理函式上.這就要用到on_control_range巨集.on_control_range訊息對映巨集的第乙個引數是控制項訊息碼,第二和第三個引數分別指明了一組連續的控制項id中的頭乙個和最後乙個id,最後乙個引數是訊息處理函式名。例如,要處理一組單選按鈕發出的bn_clicked訊息,相應的訊息對映如下所示: 

on_control_range(bn_clicked, idc_first, idc_last, onradioclicked) 

函式onradioclicked的宣告如下,該函式比上面的onadd多了乙個引數nid以說明傳送通知訊息的控制項id. 

afx_msg void onradioclicked(uint nid); 

classwizard不支援on_control_range巨集,所以需要手工建立訊息對映和訊息處理函式.

二、

mysql運維 讀書筆記 Mysql 讀書筆記

mysql儲存時間有兩種型別 datetime和timestamp。分別說一下兩者的區別。datetime,以8位元組儲存時間,理論上可以從0000年儲存到9999年。並且沒有時區的概念,它儲存的就是乙個時間點的概念。timestamp和datetime最主要的不同就是,它是以4個位元組儲存,由19...

struts in action讀書筆記

struts in action 學習筆記 一 struts的控制流 因為web 應用是動態的,所以很難表現 乙個真正固定的控制流 取決於環境,不同的方式下有很多不同的事情發生 特別是在web 應用中。但是事情仍然有乙個通用的秩序。如果你是個struts,應用框架,甚至web 應用的新手,這些流程剛...

中 斷(讀書筆記)

裝置的中斷會打斷核心中程序的正常排程和執行,系統對更高吞吐率的追求勢必要求中斷服務程式盡可能地短小精悍。但是這個良好的願望往往與現實並不吻合。在大多數的系統中,當中斷到來時,要完成的工作往往並不是短小的,它可能要求進行較大量的耗時處理。為了在中斷執行時間盡可能短和中斷處理需要完成大量工作之前找乙個平...