class MyApp : public CWinApp {
afx_msg OnPrefrences();
};
OnPrefrences() вызывается, когда пользователь выбирает инструменты-> Предпочтение из строки меню.Обмен переменной среди экземпляров классов
Теперь в одном диалоговом окне (Скажем DlgX) есть одна кнопка, при нажатии на это мне нужно открыть диалоговое окно «Предпочтения», в котором на самом деле много панелей, но здесь мне нужно открыть диалоговое окно «Предпочтения», выбрав один из них: активный. Также в этой конкретной области мне нужно скрыть некоторые элементы управления только тогда, когда она откроется через это диалоговое окно, а не через меню.
Итак, я создал одну переменную (Say m_varX) в классе MainFrm.
void DlgX::OnButtonXClick()
{
CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
if(pFrame)
{
pFrame->m_varX = TRUE;
((CMyApp*)(AfxGetApp()))->OnPrefrences();
pFrame->m_varX = FALSE;
}
}
А кнопки обработчик DlgX Я сделал это m_varX ИСТИНА и вызовите OnPreference() и после закрытия этого диалога предпочтений я сделал m_varX FALSE.
Все это работает нормально ... Но проблема в том, что в mainFrm все становится беспорядочным. Кроме того, проект, над которым я работаю, является устаревшим, поэтому я не могу внести существенных изменений.
Есть ли какие-либо инструменты для обработки такого случая?
Благодаря
okay спасибо, что сделаем! Лучше изменить его как, это то, что я делаю void OnPreferences (BOOL bShowAll = TRUE); Мне интересно, если MFC предоставляет некоторые классы utils как вещь ... – dearvivekkumar