下面以添加查找對話框FINDMSGSTRING消息的處理函數為例:
打開查找對話框后,當用戶單擊“查找下一個”或者其他按鈕時,對話框會向父窗口發送FINDMSGSTRING消息,這不是MFC中預先定義好的消息,故不能通過ClassWizard添加消息處理函數,必須手動添加。添加過程如下:
1.先在CDemoView.h文件的頭部“class CDemoView”語句前添加如下代碼,將FINDMSGSTRING消息注冊為WM_FINDREPLACE自定義消息:
const WM_FINDREPLACE = ::RegisterWindowMessage(FINDMSGSTRING);
2.同時在CDemoView.h文件的CDemoView類的聲明中找到“DECLARE_MESSAGE_MAP()”語句,在這個語句前一行添加如下語句作為消息處理函數的聲明:
afx_msg LONG OnFindReplace(WPARAM wParam, LPARAM lParam);
3.接著在CDemoView.cpp文件的頭部找到“END_MESSAGE_MAP()”語句,在這個語句的前一行添加如下語句綁定消息WM_FINDREPLACE和消息處理函數OnFineReplace():
ON_REGISTERED_MESSAGE(WM_FINDREPLACE, OnFineReplace)
4.最后在CDemoView.cpp末尾編寫CDemoView::OnFineReplace()函數了。
-《vc++6.0程序設計從入門到精通》