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);//文檔被修改後可調用此函數,把文檔被修改的信息通知給每一個視圖。
未完待續