NPP 示例:演示 Windows 消息处理 API (MAPI)
更新:2007 年 11 月
NPP 示例是一个类似于“记事本”的单文档界面 (SDI) 应用程序,它允许编辑文本消息并通过 Windows 消息处理 API(或 MAPI)将其发送给其他用户或其他系统。
安全说明: |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 |
获取示例和安装示例的说明:
在 Visual Studio 的“帮助”菜单上,单击“示例”。
有关更多信息,请参见定位示例文件。
示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。
还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。
生成并运行示例
生成并运行 NPP 示例
打开解决方案 NPP.sln。
在“生成”菜单中单击“生成”。
在“调试”菜单中,单击“开始执行(不调试)”。
“File”菜单的“Send”命令可将编辑窗口的内容附加到 MAPI 消息中。选择“Send”时将提示您输入用户名和密码,以便在您尚未登录时启动 MAPI 会话。
启用此功能(除了将菜单选择本身添加到资源文件外)的两行重要代码是 CNotepadDoc 实例的消息射中的项,这些项由应用程序进行维护。这些项为:
ON_COMMAND(ID_FILE_SEND_MAIL, OnFileSendMail)
ON_UPDATE_COMMAND_UI(ID_FILE_SEND_MAIL, OnUpdateFileSendMail)
CDocument::OnFileSendMail 和 CDocument::OnUpdateFileSendMail 内置在 MFC 中;在应用程序中获得此 MAPI 支持级别不需要其他额外的内容。
关键字
此示例说明以下关键字:
AfxGetMainWnd;AfxMessageBox;CComboBox::Copy;CComboBox::Create;CComboBox::GetDroppedState;CComboBox::Paste;CComboBox::SetEditSel;CComboBox::ShowDropDown;CDC::GetTextExtent;CDC::GetTextMetrics;CDC::SelectObject;CDialog::DoModal;CDialog::OnCancel;CDialog::OnInitDialog;CDocument::OnNewDocument;CEdit::GetLineCount;CEdit::LineFromChar;CEdit::LineIndex;CEdit::LineScroll;CEdit::SetSel;CEditView::GetEditCtrl;CEditView::GetSelectedText;CEditView::OnFindNext;CFrameWnd::Create;CFrameWnd::DockControlBar;CFrameWnd::EnableDocking;CFrameWnd::GetActiveView;CFrameWnd::RecalcLayout;CObject::AssertValid;CObject::Dump;CObject::Serialize;CRect::Height;CStatusBar::CommandToIndex;CStatusBar::SetPaneText;CString::Format;CString::GetLength;CString::LoadString;CToolBar::GetItemRect;CToolBar::SetButtonInfo;CView::GetDocument;CView::OnBeginPrinting;CView::OnDraw;CView::OnEndPrinting;CView::OnPreparePrinting;CWinApp::AddDocTemplate;CWinApp::InitInstance;CWinApp::LoadStdProfileSettings;CWinApp::OnFileNew;CWinApp::OnIdle;CWinApp::OpenDocumentFile;CWnd::Create;CWnd::DoDataExchange;CWnd::FromHandle;CWnd::GetDescendantWindow;CWnd::GetDlgItem;CWnd::GetFocus;CWnd::GetStyle;CWnd::GetWindowRect;CWnd::GetWindowText;CWnd::GetWindowTextLength;CWnd::KillTimer;CWnd::OnClose;CWnd::OnCreate;CWnd::PostMessage;CWnd::PreTranslateMessage;CWnd::ScreenToClient;CWnd::SendMessage;CWnd::SetFocus;CWnd::SetFont;CWnd::SetTimer;CWnd::SetWindowPos;CWnd::SetWindowText;CWnd::ShowWindow;CreateFontIndirect;DragAcceptFiles;EndDialog;EnumFontFamilies;GetDlgItem;GetKeyState;GetLocalTime;GetStockObject;LoadBitmap;MessageBeep;SendMessage;SetWindowText;memcpy
说明: |
---|
某些示例(如此示例)尚未经过修改以反映 Visual C++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。 |