NPP 示例是一个类似于“记事本”的单文档界面 (SDI) 应用程序,它允许编辑文本消息并通过 Windows 消息处理 API(或 MAPI)将其发送给其他用户或其他系统。
如果正在运行 Windows NT 4.0,请确保运行此示例之前已在计算机上安装了 MAPI。
![]() |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。Microsoft 并不保证将该示例代码用于除此以外的其他用途时不会造成意外或连带损坏。 |
生成并运行示例
生成并运行 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++ 向导、库和编译器中所做的更改,但仍演示了如何完成所需的任务。 |