class MyApp : public CWinApp {
afx_msg OnPrefrences();
};
當用戶從菜單欄中選擇工具 - >首選項時,會調用OnPrefrences()。在類實例中共享變量
現在在一個對話框中(說DlgX)有一個按鈕,在點擊這個我需要打開首選項對話框,其實有很多窗格,但在這裏我需要打開首選項對話框選擇一個這些窗格爲活性。另外在那個特定的窗格中,我只需要隱藏一些控件,只有當它通過這個對話框而不是通過菜單打開時。
所以我在MainFrm類中創建了一個變量(稱爲m_varX)。
void DlgX::OnButtonXClick()
{
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
if(pFrame)
{
pFrame->m_varX = TRUE;
((CMyApp*)(AfxGetApp()))->OnPrefrences();
pFrame->m_varX = FALSE;
}
}
而且在DlgX的按鈕處理我做了這個m_varX TRUE並調用OnPreference(),這首選項對話框我已經m_varX FALSE收市後。
這一切工作正常......但問題是,mainFrm中的東西變得混亂。此外,我正在從事的項目是遺留項目,所以我無法做出太多改變。
有沒有可用於處理這種情況的模式?
感謝
好的,謝謝,這將做! 更好地改變它,這是我在做什麼 void OnPreferences(BOOL bShowAll = TRUE); 我想知道如果MFC提供了一些類似東西的utils類... – dearvivekkumar 2012-07-19 08:47:46