Drawcli是VS2010中的一个示例程序,可以进行简单的绘图操做,例如线、矩形、圆角矩形、多边形等,位于VS安装目录"Microsoft Visual Studio 10.0\Samples\2052\VC2010Samples\C++\MFC\ole\drawcli"下。函数
1.文件工具
(1)new,open,Close,save,PrintSetup:参考另外一篇博客:http://www.javashuo.com/article/p-ubsmshrg-hq.htmlthis
(2)Print和PrintPreview:参考另外一篇博客:http://www.javashuo.com/article/p-btcsrcvf-hk.html.net
(3)SendMail:参考另外一篇博客:http://www.javashuo.com/article/p-szitaqmj-he.htmlcode
(4)SummaryInfo摘要:blog
开始时间:文档
FILETIME now; CoFileTimeNow(&now); __int64 startEdit = *(__int64*)&now;
时间:get
FILETIME now; CoFileTimeNow(&now); __int64 currTime = *(__int64*)&now; __int64 thisSession = currTime - startEdit; ULONG editMinutes = (ULONG)(thisSession /600000000); TCHAR buff[20]; _stprintf_s(buff, 20, _T("%lu min"), editMinutes);
2编辑博客
3.视图it
(1)工具栏:ID_VIEW_TOOLBAR
(2)状态栏:ID_VIEW_STATUS_BAR
(3)网格:
ON_COMMAND(ID_VIEW_GRID, OnViewGrid) void CDrawView::OnViewGrid() { m_bGrid = !m_bGrid; Invalidate(FALSE); //整个窗口客户区无效,须要重绘,窗口类提供了WM_PAINT的消息处理函数OnPaint,OnPaint负责重绘窗口,在视图类的OnPaint函数中调用了OnDraw函数,实际的重绘工做由OnDraw来完成。 } void CDrawView::OnDraw(CDC* pDC) { if (!pDC->IsPrinting() && m_bGrid) DrawGrid(pDrawDC); } void CDrawView::DrawGrid(CDC* pDC) { CDrawDoc* pDoc = GetDocument(); COLORREF oldBkColor = pDC->SetBkColor(pDoc->GetPaperColor()); CRect rect; rect.left = -pDoc->GetSize().cx / 2; rect.top = -pDoc->GetSize().cy / 2; rect.right = rect.left + pDoc->GetSize().cx; rect.bottom = rect.top + pDoc->GetSize().cy; // Center lines CPen penDash; penDash.CreatePen(PS_DASH, 1, m_gridColor); CPen* pOldPen = pDC->SelectObject(&penDash); pDC->MoveTo(0, rect.top); pDC->LineTo(0, rect.bottom); pDC->MoveTo(rect.left, 0); pDC->LineTo(rect.right, 0); // Major unit lines CPen penDot; penDot.CreatePen(PS_DOT, 1, m_gridColor); pDC->SelectObject(&penDot); for (int x = rect.left / 100 * 100; x < rect.right; x += 100) { if (x != 0) { pDC->MoveTo(x, rect.top); pDC->LineTo(x, rect.bottom); } } for (int y = rect.top / 100 * 100; y < rect.bottom; y += 100) { if (y != 0) { pDC->MoveTo(rect.left, y); pDC->LineTo(rect.right, y); } } // Outlines CPen penSolid; penSolid.CreatePen(PS_SOLID, 1, m_gridColor); pDC->SelectObject(&penSolid); pDC->MoveTo(rect.left, rect.top); pDC->LineTo(rect.right, rect.top); pDC->LineTo(rect.right, rect.bottom); pDC->LineTo(rect.left, rect.bottom); pDC->LineTo(rect.left, rect.top); pDC->SelectObject(pOldPen); pDC->SetBkColor(oldBkColor); }
(4)背景颜色
CColorDialog dlg; if (dlg.DoModal() != IDOK) return; m_paperColor = dlg.GetColor(); SetModifiedFlag();//用户是否修改了属性页面。 TRUE表示控件状态已被改变;FALSE表示控件的状态刚被保存。 UpdateAllViews(NULL);//文档被修改后可调用此函数,把文档被修改的信息通知给每一个视图。
未完待续