CPropertyPage::OnSetActive()和OnKillActive()函數:屬性頁面切換時的處理函數

來源:互聯網
上載者:User

CPropertyPage::OnKillActive
virtual BOOL OnKillActive();
傳回值:
如果資料被成功更新則返回非零值;否則返回0。
說明:
當頁不再是活動頁時,架構調用此函數。重載這個成員函數來執行指定的資料確認任務。
此成員函數的預設實現將對屬性頁面中的控制項所做的設定拷貝到屬性頁面的成員變數中。如果資料沒有被成功地更新,則屬於一個對話方塊資料確認(DDV)錯誤,該頁保持焦點。
在此成員函數成功返回之後,架構將調用此頁的OnOK函數。

CPropertyPage::OnSetActive
virtual BOOL OnSetActive();
傳回值:
如果成功地啟用了此頁則返回非零值;否則返回0。
說明:
當使用者選擇了此頁並將其變為活動頁時,架構調用這個成員函數。重載此成員函數來執行當一個頁被啟用時要執行的任務。你的關於這個成員函數的重載應該在做任何其它處理之前調用預設的版本。
預設的實現為該頁建立視窗(如果在此之前沒有建立的話),並使它成為活動頁。

 

當在一個主對話方塊中同時載入幾個屬性頁面時,有時候就需要在屬性頁面切換時做一些必要的處理,例如傳遞資料,在當前啟用頁使用上一頁中的變數或函數。執行個體代碼如下:

BOOL CRealTimeDlg::OnSetActive(void)
{
 CPropertySheet* pParent = (CPropertySheet*) GetParent();//首先獲得屬性頁面父視窗指標

//再獲得指定屬性頁面指標,其中CDataAnalysisDlg為要進行處理的視窗類別
 CDataAnalysisDlg* dataanalysisdlg = (CDataAnalysisDlg*)pParent->GetPage(1);

 dataanalysisdlg->OnKillTimerDatabase();//調用該視窗類別中的函數

 return CPropertyPage::OnSetActive();  //這句本來就有,重載
}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.