SCRIBBLE 示例:MFC MDI 绘图应用程序

更新:2007 年 11 月

SCRIBBLE 是一个小绘图应用程序,它允许用鼠标绘制徒手画并将图像保存在文件中。此示例简单阐释了 MFC 的广泛功能:

  • 应用程序对象

  • 文档、视图和文档模板

  • 命令、消息映射和命令用户界面更新

  • MDI(多文档界面)框架和子窗口

  • 工具栏和状态栏

  • 从文档到视图的更新提示

  • 对话框、数据交换和验证

  • 滚动视图

  • 拆分窗口

  • 打印和打印预览

有关这些功能的高级使用的阐释,请参考其他 MFC 示例。

SCRIBBLE 还包括“可视化编辑”服务器功能。

安全说明:

提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。

获取示例和安装示例的说明:

  • 在 Visual Studio 的“帮助”菜单上,单击“示例”。

    有关更多信息,请参见定位示例文件

  • 示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。

  • 还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。

生成并运行示例

生成并运行 SCRIBBLE 示例

  1. 打开解决方案 Scribble.sln。

  2. 在“生成”菜单中单击“生成”。

  3. 在“调试”菜单中,单击“开始执行(不调试)”。

Scribble 的其他版本

以 CLR 为目标的版本中也提供了 Scribble:

关键字

SCRIBBLE 示例说明了以下关键字:

AfxMessageBox;AfxOleInit;CArchive::IsStoring;CCmdUI::Enable;CCmdUI::SetCheck;CControlBar::EnableDocking;CControlBar::GetBarStyle;CControlBar::SetBarStyle;CDC::DPtoLP;CDC::GetDeviceCaps;CDC::GetTextMetrics;CDC::LPtoDP;CDC::LPtoHIMETRIC;CDC::LineTo;CDC::MoveTo;CDC::SelectObject;CDC::SetMapMode;CDC::SetTextAlign;CDC::SetViewportExt;CDC::SetWindowExt;CDC::SetWindowOrg;CDC::TextOut;CDialog::DoModal;CDocTemplate::SetServerInfo;CDocument::DeleteContents;CDocument::GetFirstViewPosition;CDocument::GetNextView;CDocument::OnNewDocument;CDocument::OnOpenDocument;CDocument::SetModifiedFlag;CDocument::UpdateAllViews;CFont::CreateFontIndirect;CFrameWnd::Create;CFrameWnd::DockControlBar;CFrameWnd::EnableDocking;CFrameWnd::LoadFrame;CFrameWnd::OnCreateClient;CObList::GetHeadPosition;CObList::GetNext;CObject::AssertValid;CObject::Dump;CObject::IsKindOf;CObject::Serialize;COleDocument::EnableCompoundFile;COleIPFrameWnd::OnCreateControlBars;COleServerDoc::GetEmbeddedItem;COleServerDoc::GetZoomFactor;COleServerDoc::NotifyChanged;COleServerDoc::OnGetEmbeddedItem;COleServerDoc::OnSetItemRects;COleServerItem::CopyToClipboard;COleServerItem::GetDocument;COleServerItem::IsLinkedItem;COleServerItem::OnDraw;COleServerItem::OnGetExtent;COleTemplateServer::ConnectTemplate;COleTemplateServer::UpdateRegistry;CPen::CreatePen;CRect::InflateRect;CRect::IntersectRect;CRect::SetRectEmpty;CScrollView::SetScrollSizes;CSplitterWnd::Create;CStatusBar::Create;CStatusBar::SetIndicators;CToolBar::Create;CView::DoPreparePrinting;CView::GetDocument;CView::OnBeginPrinting;CView::OnDraw;CView::OnEndPrinting;CView::OnInitialUpdate;CView::OnPrepareDC;CView::OnPreparePrinting;CView::OnPrint;CView::OnUpdate;CWinApp::AddDocTemplate;CWinApp::InitInstance;CWinApp::LoadStdProfileSettings;CWnd::DoDataExchange;CWnd::GetCapture;CWnd::Invalidate;CWnd::InvalidateRect;CWnd::OnCreate;CWnd::OnLButtonDown;CWnd::OnLButtonUp;CWnd::OnMouseMove;CWnd::OnSize;CWnd::PreCreateWindow;CWnd::SetCapture;CWnd::SetOwner;CWnd::ShowWindow;CWnd::UpdateWindow;CreatePen;DeleteObject;DragAcceptFiles;GetClipBox;LPtoDP;RGB;ReleaseCapture;SetRectEmpty;max;memset;min

说明:

某些示例(如此示例)尚未经过修改以反映 Visual C++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。

请参见

其他资源

MFC 示例