1.文档修改后,关闭时需要保存,主要用到2个函数,在需要更改文档内容的函数里调用SetModifiedFlag(TRUE),另一个就是SaveModified()函数,简单的例子:
BOOL CMFC_Doc::SaveModified() { // TODO: 在此添加专用代码和/或调用基类 return CDocument::SaveModified(); } void CMFC_Doc::SetColor() { m_color=RGB(0,0,0); 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; }