MFC OCX 控件事件的添加和處理


1、控件的事件一般都是由對外的接口引發到,這里定一個接口先:

該接口有一個字符串參數,表示調用者將傳入一個字符串,傳進來后,我們將取得字符串的長度。

2、添加事件:

事件應該是屬於窗口的,所以在Ctrl類上單擊右鍵-》添加:

3、添加一個事件“hello”:

該事件的參數是剛才那個字符串處理的結果,這里是long型。

4、在接口實現里調用事件函數:

[cpp]  view plain copy
 
  1. // COcxEventCtrl 消息處理程序  
  2.   
  3. LONG COcxEventCtrl::MyInterface(LPCTSTR strValue)  
  4. {  
  5.     AFX_MANAGE_STATE(AfxGetStaticModuleState());  
  6.     CString str = strValue;  
  7.     int len = str.GetLength();  
  8.     hello(len);  
  9.     return 0;  
  10. }  

 

事件函數的名字就是事件名稱,參數就是在添加事件時候設置的參數。這里我們計算了字符串的長度,然后把結果給了事件函數。控件里面要做到就做完了。

5、響應事件:

新建一個對話框項目,添加你做好的控件,並為其關聯一個變量;然后添加一個按鈕,在按鈕點擊消息里,調用控件的對外接口,這里就一個接口:

[cpp]  view plain copy
 
  1. void COcxEventTestDlg::OnBnClickedButton1()  
  2. {  
  3.     m_OcxEvent.MyInterface(L"hello world !");  
  4.       
  5. }  

這里我們傳入了" hello world  ! "。接口函數調用后就會引發我們定義的事件。

在控件上單擊右鍵,選擇添加事件處理:

在實現代碼里,添加如下內容:

[cpp]  view plain copy
 
  1. void COcxEventTestDlg::helloOcxeventctrl1(long len)  
  2. {  
  3.     CString str;  
  4.     str.Format(_T("%d"),len);  
  5.     AfxMessageBox(str);  
  6. }  

這里消息響應函數傳出了一個值,它就是計算出來的長度,我們把它彈出來看看:

10個字母+2個空格+一個感嘆號 = 13.   OK了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM