CView类和CFrame类有什么区别?当生成一个工程时,他们各自负责些什么,他们的功能是否有交叉?是不是CView对象能处理的事情,CFrame对象都能处理?比如:我想在状态栏显示时间,是在CView对象中编写还是在CFrame对象中编写?为什么?请给出代码?谢谢
就说CView和CFrameWnd吧
CFramewnd 是管理整个窗的 包括状态栏,工具栏
而CView是管理客户区的.而至于代码的编写是程式员的事,你将你的代码放到那里都可以比如你想在状态栏中显示时间,这时你可在CMYView.cpp中写代码后调用CFrameWnd中的状态栏对象将其显示在状态栏中
同样你也可以将代码放在CFrameWnd.cpp中
Frame在程序中负责界面布局,对子窗口进行管理,如视图、工具条等的位置、大小、显示等。
View用于表现文档的数据。
在视图/文档结构中两者分工明确,当然、如果不使用视图/文档结构的话,Frame也可以进行界面的绘制处理。
在状态栏显示时间,要加在Frame中,因为状态栏是他的成员,最好在框架中加一个定时器,在响应中更新状态栏的时间:
void CFrame::OnTimer(UINT nIDEvent)
{
CTime now = CTime::GetTime();
CString strTime = now.Format( "%Y-%m-%d");
m_wndStatusBar.SetPaneText(0, strTime);
}