afx_msg

afx_msg是計算機函式。

AFX前綴

Afx前綴是微軟MFC一個小組的名稱簡寫,並沒有別的意義。  MFC的很多代碼,包括全局函式名、宏、頭檔案名稱都使用了"Afx"。  Afx*.h是一組MFC的核心頭檔案, 比如: afxwin.h 定義MFC的核心和標準組件  afxext.h 定義MFC的擴展  afxdisp.h 是MFC自動化支持的類定義頭檔案  afxdb.h 是MFC的ODBC類封裝

函式原型

在頭檔案(DrawView.h)中聲明訊息回響函式原型。

//{{AFX_MSG(CDrawView) //注釋宏

afx_msg void OnLButtonDown(UINT nFlags, CPoint point);

//}}AFX_MSG //注釋宏

說明:

在注釋宏之間的聲明在VC中灰色顯示。afx_msg宏表示聲明的是一個訊息回響函式

afx_msg訊息函式

應用程式框架產生的訊息映射函式

例如:afx_msg void OnBnClickedButton1(); 其中 afx_msg為訊息標誌,它向系統聲明:有訊息映射到函式實現體;而在map宏定義中,就有具體訊息和此函式的映射定義(可以是自定義,也可以是系統自動完成的)

afx是 application framework

處理函式

如定義一個Edit的Change處理函式:

一、在類的頭檔案(*.h)中增加 :

//{{AFX_MSG(CDialogDemo)

afx_msg void OnChangeEdit1();

//}}AFX_MSG

二、在類的實現檔案(*.cpp)中增加:

1.訊息定義( ON_EN_CHANGE):

BEGIN_MESSAGE_MAP(CDialogDemo, CDialog)

//{{AFX_MSG_MAP()

ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

2.執行函式:

void CDialogDemo::OnChangeEdit1()

{

// TODO: Add your control notification handler code here

……

}

在afxwin.h中afx_msg的解釋:

#ifndef afx_msg

#define afx_msg // intentional placeholder

#endif

沒什麼意思.只是定義了這個符號而已. 這個對編譯器來說,相當於什麼都沒有,對於人來說,我們可以看到這樣的符號. 對於類嚮導來說.這個符號才是有意義的.它是一個訊息處理函式的前綴. 類嚮導生成的訊息函式,分發函式,事件回響函式都以這個為前綴. 如果去掉了,嚮導將不能識別

相關詞條

熱門詞條

聯絡我們