满意答案
binqing98.
2014.05.15
采纳率:55% 等级:12
已帮助:5970人
class CUserWnd
{
public:
BOOL SetButtonInfo(const std::vector<UserData::ButtonInfo> &vtBtnInfo);
BOOL SetTextInfo(const std::vector<UserData::TextInfo> &vtTxtInfo);
BOOL SetProgressInfo(const std::vector<CProgress> &vtPrgInfo);
BOOL SetBackground(UserData::BackgroundInfo bkInfo);
...
}
然后对于不同功能的界面,我们只需要设置不同的数值即可:
//背光窗口
pWndBacklight->SetButtonInfo(vtBtnInfo1);
pWndBacklight->SetTextInfo(vtTxtInfo1);
pWndBacklight->SetBackground(bkInfo1);
//电池窗口
pWndBattery->SetButtonInfo(vtBtnInfo2);
pWndBattery->SetTextInfo(vtTxtInfo2);
pWndBattery->SetBackground(bkInfo2);
这样我们只需要一个窗口类,就能实现变化各异的界面。
在这里还有一点需要提一下,一般来说,我们显示界面和功能的实现应该分开,这样代码看起来就不会变得杂乱无章。我们可以采用这么一种做法,定义一个CCommand类,主要是执行按钮的相关功能操作,然后窗口类继承于该类即可:
class CCommand
{
protected:
BOOL ExecuteCmd(UserData::CtrlIndex ctrlIndex,DWORD dwParam);
....
}
BOOL CCommand::ExecuteCmd(UserData::CtrlIndex ctrlIndex,DWORD dwParam)
{
switch(ctrlIndex)
{
case UserData::BTN_EXIT:
{
return OnCmdExit();
}
case UserData::BTN_EXPLORER:
{
//Execute the explorer and then exit the application
CCommon::Execute(m_Option.GetPathTab(Option::PATH_EXPLORER).c_str());
}
...
}
}
//窗口的继承
class CUserWnd:
public CCommand
{
...
}
.
希望能够帮助你 ^_^ 也希望能够选为最佳答案!
00分享举报