# 实现
## Text.h
```c
// Text.h: Text 应用程序的主头文件
//
#pragma once
#ifndef __AFXWIN_H__
#error "在包含此文件之前包含“stdafx.h”以生成 PCH 文件"
#endif
#include "resource.h" // 主符号
// CTextApp:
// 有关此类的实现,请参阅 Text.cpp
//
class CTextApp : public CWinApp
{
public:
CTextApp() noexcept;
// 重写
public:
virtual BOOL InitInstance();
virtual int ExitInstance();
// 实现
afx_msg void OnAppAbout();
DECLARE_MESSAGE_MAP()
};
extern CTextApp theApp;
```
## Text.cpp
```c
// Text.cpp: 定义应用程序的类行为。
//
#include "stdafx.h"
#include "afxwinappex.h"
#include "afxdialogex.h"
#include "Text.h"
#include "MainFrm.h"
#include "TextDoc.h"
#include "TextView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CTextApp
BEGIN_MESSAGE_MAP(CTextApp, CWinApp)
ON_COMMAND(ID_APP_ABOUT, &CTextApp::OnAppAbout)
// 基于文件的标准文档命令
ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)
// 标准打印设置命令
ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinApp::OnFilePrintSetup)
END_MESSAGE_MAP()
// CTextApp 构造
CTextApp::CTextApp() noexcept
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_ALL_ASPECTS;
#ifdef _MANAGED
// 如果应用程序是利用公共语言运行时支持(/clr)构建的,则:
// 1) 必须有此附加设置,“重新启动管理器”支持才能正常工作。
// 2) 在您的项目中,您必须按照生成顺序向 System.Windows.Forms 添加引用。
System::Windows::Forms::Application::SetUnhandledExceptionMode(System::Windows::Forms::UnhandledExceptionMode::ThrowException);
#endif
// TODO: 将以下应用程序 ID 字符串替换为唯一的 ID 字符串;建议的字符串格式
//为 CompanyName.ProductName.SubProduct.VersionInformation
SetAppID(_T("Text.AppID.NoVersion"));
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的 CTextApp 对象
CTextApp theApp;
// CTextApp 初始化
BOOL CTextApp::InitInstance()
{
// 如果一个运行在 Windows XP 上的应用程序清单指定要
// 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式,
//则需要 InitCommonControlsEx()。 否则,将无法创建窗口。
INITCOMMONCONTROLSEX InitCtrls;
InitCtrls.dwSize = sizeof(InitCtrls);
// 将它设置为包括所有要在应用程序中使用的
// 公共控件类。
InitCtrls.dwICC = ICC_WIN95_CLASSES;
InitCommonControlsEx(&InitCtrls);
CWinApp::InitInstance();
// 初始化 OLE 库
if (!AfxOleInit())
{
AfxMessageBox(IDP_OLE_INIT_FAILED);
return FALSE;
}
AfxEnableControlContainer();
EnableTaskbarInteraction(FALSE);
// 使用 RichEdit 控件需要 AfxInitRichEdit2()
// AfxInitRichEdit2();
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU)
// 注册应用程序的文档模板。 文档模板
// 将用作文档、框架窗口和视图之间的连接
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CTextDoc),
RUNTIME_CLASS(CMainFrame), // 主 SDI 框架窗口
RUNTIME_CLASS(CTextView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);
// 分析标准 shell 命令、DDE、打开文件操作的命令行
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
// 调度在命令行中指定的命令。 如果
// 用 /RegServer、/Register、/Unregserver 或 /Unregister 启动应用程序,则返回 FALSE。
if (!ProcessShellCommand(cmdInfo))
return FALSE;
// 唯一的一个窗口已初始化,因此显示它并对其进行更新
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
int CTextApp::ExitInstance()
{
//TODO: 处理可能已添加的附加资源
AfxOleTerm(FALSE);
return CWinApp::ExitInstance();
}
// CTextApp 消息处理程序
// 用于应用程序“关于”菜单项的 CAboutDlg 对话框
class CAboutDlg : public CDialogEx
{
public:
CAboutDlg() noexcept;
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_ABOUTBOX };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() noexcept : CDialogEx(IDD_ABOUTBOX)
{
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()
// 用于运行对话框的应用程序命令
void CTextApp::OnAppAbout()
{
CAboutDlg aboutDlg;
aboutDlg.DoModal();
}
// CTextApp 消息处理程序
```
## TextDoc.h
```c
// TextDoc.h: CTextDoc 类的接口
//
#pragma once
class CTextDoc : public CDocument
{
protected: // 仅从序列化创建
CTextDoc() noexcept;
DECLARE_DYNCREATE(CTextDoc)
// 特性
public:
// 操作
public:
// 重写
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
#ifdef SHARED_HANDLERS
virtual void InitializeSearchContent();
virtual void OnDrawThumbnail(CDC& dc, LPRECT lprcBounds);
#endif // SHARED_HANDLERS
// 实现
public:
virtual ~CTextDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
#ifdef SHARED_HANDLERS
// 用于为搜索处理程序设置搜索内容的 Helper 函数
void SetSearchContent(const CString& value);
#endif // SHARED_HANDLERS
};
```
## TextDoc.cpp
```c
// TextDoc.cpp: CTextDoc 类的实现
//
#include "stdafx.h"
// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS
#include "Text.h"
#endif
#include "TextDoc.h"
#include <propkey.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CTextDoc
IMPLEMENT_DYNCREATE(CTextDoc, CDocument)
BEGIN_MESSAGE_MAP(CTextDoc, CDocument)
END_MESSAGE_MAP()
// CTextDoc 构造/析构
CTextDoc::CTextDoc() noexcept
{
// TODO: 在此添加一次性构造代码
}
CTextDoc::~CTextDoc()
{
}
BOOL CTextDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: 在此添加重新初始化代码
// (SDI 文档将重用该文档)
return TRUE;
}
// CTextDoc 序列化
void CTextDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: 在此添加存储代码
}
else
{
// TODO: 在此添加加载代码
}
}
#ifdef SHARED_HANDLERS
// 缩略图的支持
void CTextDoc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds)
{
// 修改此代码以绘制文档数据
dc.FillSolidRect(lprcBounds, RGB(255, 255, 255));
CString strText = _T("TODO: implement thumbnail drawing here");
LOGFONT lf;
CFont* pDefaultGUIFont = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT));
pDefaultGUIFont->GetLogFont(&lf);
lf.lfHeight = 36;
CFont fontDraw;
fontDraw.CreateFontIndirect(&lf);
CFont* pOldFont = dc.SelectObject(&fontDraw);
dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK);
dc.SelectObject(pOldFont);
}
// 搜索处理程序的支持
void CTextDoc::InitializeSearchContent()
{
CString strSear
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
win32编程领域,VC++深入详解书籍源码,作者孙鑫 (1223个子文件)
Graphic.aps 6.05MB
Graphic.aps 6.05MB
Graphic.aps 6.03MB
Style.aps 130KB
Prop.aps 119KB
Text.aps 119KB
Draw.aps 119KB
Mybole.aps 119KB
Menu.aps 119KB
NamedPipeClt.aps 118KB
NamedPipeSrv.aps 118KB
MailslotSrv.aps 118KB
MailslotClt.aps 118KB
Parent.aps 118KB
Menu2.aps 118KB
Child.aps 118KB
File.aps 118KB
ClockTest.aps 107KB
Chat.aps 106KB
DllTest.aps 106KB
Chat.aps 106KB
InnerHook.aps 106KB
Test.aps 106KB
Test.aps 100KB
Clipboard.aps 89KB
WinSun.aps 89KB
Clock.aps 40KB
fileList.bin 113KB
fileList.bin 82KB
fileList.bin 71KB
fileList.bin 71KB
background.bmp 5.93MB
background.bmp 5.93MB
background.bmp 5.93MB
bitmap1.bmp 1KB
bitmap1.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
Toolbar.bmp 1KB
toolbar1.bmp 478B
bitmap1.bmp 334B
ClockCtrl.bmp 238B
Clock_i.c 2KB
GraphicView.cpp 11KB
GraphicView.cpp 10KB
FileView.cpp 8KB
MainFrm.cpp 6KB
ChatDlg.cpp 6KB
ChatDlg.cpp 6KB
TestDlg.cpp 5KB
ClockCtrl.cpp 5KB
GraphicView.cpp 5KB
Parent.cpp 5KB
File.cpp 5KB
Menu.cpp 5KB
DrawView.cpp 5KB
TextView.cpp 5KB
NamedPipeClt.cpp 5KB
NamedPipeSrv.cpp 5KB
MailslotSrv.cpp 5KB
MailslotClt.cpp 5KB
Graphic.cpp 5KB
Graphic.cpp 5KB
Draw.cpp 5KB
Graphic.cpp 5KB
Mybole.cpp 5KB
Style.cpp 5KB
Child.cpp 5KB
Menu2.cpp 5KB
Text.cpp 5KB
Test.cpp 5KB
DllTestDlg.cpp 4KB
Prop.cpp 4KB
ClipboardDlg.cpp 4KB
InnerHookDlg.cpp 4KB
NamedPipeSrvView.cpp 4KB
ClockTestDlg.cpp 4KB
GraphicDoc.cpp 4KB
ParentView.cpp 4KB
HookTestDlg.cpp 3KB
TestDlg.cpp 3KB
NamedPipeCltView.cpp 3KB
WinSun.cpp 3KB
WinSunDlg.cpp 3KB
Menu2View.cpp 3KB
共 1223 条
- 1
- 2
- 3
- 4
- 5
- 6
- 13
资源评论
晴城丶
- 粉丝: 4675
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功