MFC 文档/视图

时间:2020-12-05 03:17:00

1.文档修改后,关闭时需要保存,主要用到2个函数,在需要更改文档内容的函数里调用SetModifiedFlag(TRUE),另一个就是SaveModified()函数,简单的例子:

BOOL CMFC_Doc::SaveModified()
{
// TODO: 在此添加专用代码和/或调用基类
return CDocument::SaveModified();
}
void CMFC_Doc::SetColor()
{
m_color=RGB(,,);
SetModifiedFlag(TRUE);
UpdateAllViews(NULL);
}
/////////////////////////////////////////////////////////
void CMFC_View::OnLButtonDown(UINT nFlags, CPoint pos)
{
CMFC_Doc *pDoc=GetDocument();
pDoc->SetColor(); }

2.滚动条滚动时防止重绘造成闪烁,可以用GetClipBox函数只重绘显示的区域,该函数的用法:

    CRect rect;
CClientDC dc(this);
OnPrepareDC(&dc); //在非OnDraw()函数中需要加上这一句
dc.GetClipBox(&rect);
CString str;
str.Format(_T("顶部=%d,底部=%d"),rect.top,rect.bottom);//滚动一下滚动条,再看看效果
AfxMessageBox(str);

3.如何删除文档标题呢(如:无标题-Hello_world),怎么把“无标题-”三个字去掉呢?很简单,就一句话:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式 cs.style&=~FWS_ADDTOTITLE;//就是这句话 return TRUE;
}