小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MFC常用消息-處理函數(shù)-映射

 筆錄收藏 2012-09-11

常用消息

1、WM_LBUTTONDOWN

  產(chǎn)生:?jiǎn)螕簟?/p>

  參數(shù):wParam:包含一個(gè)整數(shù)值,以標(biāo)識(shí)鼠標(biāo)鍵的按下狀態(tài)。鼠標(biāo)的按下標(biāo)識(shí)及說(shuō)明

  MK_LBUTTON  標(biāo)識(shí)按下鼠標(biāo)左鍵

  MK_MBUTTON  標(biāo)識(shí)按下鼠標(biāo)中鍵

  MK_RBUTTON  標(biāo)識(shí)按下鼠標(biāo)右鍵

  lParam:長(zhǎng)參數(shù)lParam的低字位包含當(dāng)前坐標(biāo)的x坐標(biāo),在高字節(jié)包含當(dāng)前坐標(biāo)的Y坐標(biāo)。

    相似的消息有:WM_LBUTTONUP、WM_RBUTTONDOWN、WM_RBUTTONUPWM_LBUTTONDBLCLK、WM_RBUTTONDBLCLK

2、WM_KEYDOWN

  產(chǎn)生:按下一個(gè)非系統(tǒng)鍵的時(shí)候產(chǎn)生該事件,系統(tǒng)鍵是指實(shí)現(xiàn)系統(tǒng)操作的組合鍵,例如,Alt與某個(gè)功能鍵的組合以實(shí)現(xiàn)菜單操作等。

  參數(shù):wParam:按下鍵的虛擬鍵盤碼,虛擬鍵碼用來(lái)標(biāo)識(shí)按下或者釋放的是哪個(gè)鍵,例如功能鍵F1的虛擬鍵碼在windows.h文件中定義為VK_F1。

  lParam:長(zhǎng)參數(shù)中記錄了按鍵的重復(fù)次數(shù),掃描碼、轉(zhuǎn)移代碼、先前鍵的狀態(tài)等信息。

  相似的消息有WM_KEYUP:放開按下的非系統(tǒng)鍵時(shí)產(chǎn)生的事件。

3WM_CHAR

  產(chǎn)生:按一個(gè)非系統(tǒng)鍵時(shí)產(chǎn)生。

  參數(shù):wParam:所按下的鍵的ASCII碼。lParam:長(zhǎng)參數(shù)中記錄了按鍵的重復(fù)次數(shù),掃描碼、轉(zhuǎn)移代碼、先前鍵的狀態(tài)等信息。

4、WM_CREATE

  產(chǎn)生:由CreateWindow函數(shù)發(fā)出,創(chuàng)建窗口。

  參數(shù):wParam:沒用。lParam:包含一個(gè)指向CREATESTRUCT數(shù)據(jù)結(jié)構(gòu)的指針,該結(jié)構(gòu)是傳遞給CreateWindow函數(shù)的參數(shù)的副本。

5、WM_CLOSE

  產(chǎn)生:當(dāng)關(guān)閉當(dāng)前窗口時(shí)產(chǎn)生。

  參數(shù):wParam:未用。lParam:未用。

6、WM_DESTROY

  產(chǎn)生:當(dāng)窗口要銷毀時(shí)由DestroyWindow函數(shù)發(fā)出。

  參數(shù):wParam:沒用到。lParam:沒用到。

7、WM_QUIT

  產(chǎn)生:退出應(yīng)用程序時(shí)由PostQuitMessage函數(shù)發(fā)出。

  參數(shù):wParam:含有退出代碼,退出代碼標(biāo)識(shí)應(yīng)用程序退出運(yùn)行時(shí)的有關(guān)信息。lParam:未用。

8、WM_COMMAND

  產(chǎn)生:用戶與窗口或控件交互時(shí),控件向其窗口發(fā)送WM_COMMAND消息。該消息的wParam參數(shù)的低字節(jié)中包含子窗口(控件)的標(biāo)識(shí)值ID,高字節(jié)中包含子窗口向父窗口發(fā)出的通知代碼,lParam參數(shù)中包含控件子窗口句柄。

9、WM_PAINT

  用戶改變窗口大小或拖動(dòng)窗口,系統(tǒng)向應(yīng)用程序發(fā)送WM_PAINT消息,WM_PAINT消息調(diào)用BeginPaint函數(shù)。

消息處理函數(shù)

1、windows消息和控件通知的處理函數(shù)

  windows消息和控件通知都是由派生于CWnd的窗口類對(duì)象處理的。它們包括CFrameWnd、CMDIFrameWnd、 CMDIChildWnd、CView、CDialog以及從這些派生的用戶自定義的類。這樣的類對(duì)象封裝了windows窗口句柄HWND。

  windows消息和控件通知都有默認(rèn)的處理函數(shù),這些函數(shù)在CWnd類中進(jìn)行了預(yù)定義,MFC類庫(kù)以消息名為基礎(chǔ)形成這些處理函數(shù)的名稱,這些處理函數(shù)的名稱都以前綴"On"開始。有的處理函數(shù)不帶參數(shù),有的則有幾個(gè)參數(shù);有的還有除void以外的返回值類型。CWnd中消息處理函數(shù)的說(shuō)明都有 afx_msg前綴。關(guān)鍵字afx_msg用于把處理函數(shù)和其他CWnd成員函數(shù)區(qū)分開來(lái)。例如,消息WM_PAINT的處理函數(shù)在CWnd中被聲明成:afx_msg void OnPaint();

  windows消息常見的有鼠標(biāo)消息(如WM_LBUTTONDOWN)消息)、鍵盤字符消息(WM_CHAR消息)、鍵盤按鍵消息(WM_KEYDOWN)、窗口重畫消息WM_PAINT,水平和垂直條滾動(dòng)消息WM_HSCROLLWM_VSCROLL)以及系統(tǒng)時(shí)鐘消息 WM_TIMER等。

2、命令消息的處理函數(shù)

  由于用戶界面的對(duì)象是用戶自已定義的,每個(gè)應(yīng)用程序的用戶界面對(duì)象千差萬(wàn)別,所以對(duì)用戶界面對(duì)象的命令消息沒有默認(rèn)的處理函數(shù)。如果某條命令直接影響某個(gè)對(duì)象,則應(yīng)該讓這個(gè)對(duì)象來(lái)處理這條命令。例如FILE菜單上的Open命令當(dāng)然與應(yīng)用程序有關(guān):應(yīng)用程序打開一個(gè)特定的文檔來(lái)響應(yīng)該命令。所以,Open 命令的處理函數(shù)是應(yīng)用程序類的一個(gè)成員函數(shù)。

  把命令消息映射成處理函數(shù)時(shí),ClassWizard以命令ID來(lái)命名處理函數(shù),可以接受、修改、或替換推薦使用的名字。例如,Edit菜單項(xiàng)的Cut命令,對(duì)應(yīng)ID就是ID_EDIT_CUT,處理函數(shù)被命名成:afx_msg void OnEditCut();

  此外,對(duì)于控件按鈕的BN_CLICKED通知消息,其處理函數(shù)可以被命名為:

  afx_msg void OnClickedUseAsDefault();

  命令消息的處理函數(shù)沒有參數(shù)值,也不返回值。

消息映射

  用MFC Application Wizard 創(chuàng)建應(yīng)用程序框架時(shí),AppWizard為創(chuàng)建的每個(gè)命令目標(biāo)類(包括派生的應(yīng)用程序?qū)ο?、文檔、視圖、和邊框窗口等)編寫一個(gè)消息映射。每個(gè)命令目標(biāo)類的消息映射存在相應(yīng)的.cpp文件中??梢栽?/span>AppWizard創(chuàng)建的基本消息映射的基礎(chǔ)上,使用ClassWizard為每個(gè)類將處理的消息和命令添加一些條目。例如,對(duì)于應(yīng)用程序類,MFC AppWizard創(chuàng)建的基本消息映射為:

  BEGIN_MESSAGE_MAP(CTextEditApp,CWinApp)

  //{{AFX_MSG_MAP(CTextEditApp)

  ON_COMMAND(ID_APP_ABOUT,OnAppAbout)

  //注:ClassWizard將在此處添加和刪除消息映射宏

  //不要編輯這些生成的代碼塊

  //}}AFX_MSG_MAP

  //基于標(biāo)準(zhǔn)文件的文檔命令(新建和打開)

  ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew)

  ON_COMMAND(ID_FILE_OPEN,CWinApp::OnFileOpen)

  //標(biāo)準(zhǔn)的打印設(shè)置命令

  ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp::OnFilePrintSetup)

  END_MESSAGE_MAP()

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多