【发布时间】:2011-03-26 14:42:45
【问题描述】:
我想从 View 类中提取一些特定于设置的代码并将其放入 CSettings 类中。
当设置数量超过 80 时,我不想让 CView 类膨胀。
所有来自菜单(和功能区)的关于设置的消息都应该在 CSettings 类中处理。
我唯一不明白的是如何将消息映射条目嵌入到 CMyView 消息映射中。
//The main purpose of class CSettings is to remove all the logic of settings from View.
class CSettings : public CCmdTarget
{
DECLARE_MESSAGE_MAP()
DECLARE_DYNAMIC(CSettings)
void OnCheckS1() {
m_bVal1 = !m_bVal1;
}
void OnUpdateCheck1(CCmdUI* pCmdUI){
pCmdUI->SetRadio(m_bVal1);
}
bool m_bVal1;
<other 80 settings>
}
BEGIN_MESSAGE_MAP(CSettings, CCmdTarget)
ON_COMMAND(ID_CHECK_S1, &CSettings::OnCheckS1)
ON_UPDATE_COMMAND_UI(ID_CHECK_S1, &CSettings::OnUpdateCheck1)
END_MESSAGE_MAP()
class CMyView : public CView
{
...
CSettings m_sett;
}
BEGIN_MESSAGE_MAP(CMyViewView, CView)
--->>> ??? <<<----
END_MESSAGE_MAP()
【问题讨论】: