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