打印预览对话框上部分视图 完整例程 VS2013 + W10

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_40554560/article/details/89188202

在这里插入图片描述

在这里插入图片描述
**

// PrintFrame.cpp : 实现文件

**
//

#include “stdafx.h”
#include “MFCPrintViewApp.h”
#include “PrintFrame.h”

// CPrintFrame

IMPLEMENT_DYNCREATE(CPrintFrame, CFrameWnd)

CPrintFrame::CPrintFrame()
{

}

CPrintFrame::~CPrintFrame()
{
m_pOldWnd->ShowWindow(SW_SHOW);
}

CPrintFrame::CPrintFrame(CPrintPreviewDlg* pOld)
{
m_pOldWnd = pOld;

// 生成窗口主框架
if (!Create(NULL, TEXT("打印预览 --- 贺昌锋"), WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE, CRect(01, 01, 10, 10)))
	TRACE0("Failed to create view window! ");

}

BEGIN_MESSAGE_MAP(CPrintFrame, CFrameWnd)
ON_WM_CREATE()
END_MESSAGE_MAP()

// CPrintFrame 消息处理程序
#define DMORIENT_PORTRAIT 1 //纵向
#define DMORIENT_LANDSCAPE 2 //横向

// 打印设置
void SetLandscapeMode(int PrintMode)
{
PRINTDLG pd;
pd.lStructSize = (DWORD)sizeof(PRINTDLG);
BOOL bRet = AfxGetApp()->GetPrinterDeviceDefaults(&pd);
if (bRet)
{
// protect memory handle with ::GlobalLock and ::GlobalUnlock

	DEVMODE   FAR   *pDevMode = (DEVMODE   FAR   *)::GlobalLock(pd.hDevMode);
	pDevMode->dmPaperSize = DMPAPER_A4;   //将打印纸设置为A4   
	//   set   orientation   to   landscape   
	if (PrintMode == 1)     //纵向打印   
		pDevMode->dmOrientation = DMORIENT_PORTRAIT;
	else   if (PrintMode == 2)    //横向打印   
		pDevMode->dmOrientation = DMORIENT_LANDSCAPE;
	::GlobalUnlock(pd.hDevMode);
}

}

int CPrintFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;

CCreateContext context;

context.m_pNewViewClass = RUNTIME_CLASS(CPrintView);
context.m_pCurrentFrame = this;
context.m_pCurrentDoc = NULL;
context.m_pLastView = NULL;

// 创建空视图
m_pView = STATIC_DOWNCAST(CPrintView, CreateView(&context));

if (m_pView != NULL)
{
	m_pView->ShowWindow(SW_SHOW);
	SetActiveView(m_pView);
	SetLandscapeMode(DMORIENT_LANDSCAPE);

	// 打印预览
	m_pView->OnFilePrintPreview();

	//// 直接打印
	// m_pView->SendMessage(WM_COMMAND, ID_FILE_PRINT);
}

CWinApp *pApp = AfxGetApp();
pApp->m_pMainWnd = this;
ShowWindow(SW_MAXIMIZE);

SetIcon(m_pOldWnd->GetIcon(FALSE), FALSE);
SetIcon(m_pOldWnd->GetIcon(TRUE), TRUE);
m_pOldWnd->ShowWindow(SW_HIDE);

return 0;

}

**

////PrintFrame.h

**
#pragma once

#include “PrintPreviewDlg.h”
#include “PrintView.h”

// CPrintFrame 框架 CPrintPreviewDlg PrintPreviewDlgCPrintView

class CPrintFrame : public CFrameWnd
{
DECLARE_DYNCREATE(CPrintFrame)
protected:
CPrintFrame(); // 动态创建所使用的受保护的构造函数
virtual ~CPrintFrame();

public:
CPrintFrame(CPrintPreviewDlg* pOld);

protected:
DECLARE_MESSAGE_MAP()

public:
CPrintPreviewDlg* m_pOldWnd; // 用于保存主对话框对象;
CPrintView* m_pView ; // 用于保存视图类对象;

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

};

**

// PrintPreviewView.cpp : 实现文件

**
//

#include “stdafx.h”
#include “MFCPrintViewApp.h”
#include “PrintPreviewView.h”
#include “PrintFrame.h”

// CPrintPreviewView

IMPLEMENT_DYNCREATE(CPrintPreviewView, CPreviewView)

CPrintPreviewView::CPrintPreviewView()
{
}

CPrintPreviewView::~CPrintPreviewView()
{
}

BEGIN_MESSAGE_MAP(CPrintPreviewView, CPreviewView)
ON_COMMAND(AFX_ID_PREVIEW_CLOSE, OnPreviewClose)
ON_COMMAND(AFX_ID_PREVIEW_PRINT, OnPreviewPrint)
END_MESSAGE_MAP()

// CPrintPreviewView 诊断

#ifdef _DEBUG
void CPrintPreviewView::AssertValid() const
{
CPreviewView::AssertValid();
}

#ifndef _WIN32_WCE
void CPrintPreviewView::Dump(CDumpContext& dc) const
{
CPreviewView::Dump(dc);
}
#endif
#endif //_DEBUG

// CPrintPreviewView 消息处理程序
void CPrintPreviewView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CPreviewView::OnPrint(pDC, pInfo);
}

void CPrintPreviewView::OnDraw(CDC *pDC)
{
CPreviewView::OnDraw(pDC);

// 控制条的命令状态更新
m_pToolBar->PostMessage(WM_IDLEUPDATECMDUI, (WPARAM)TRUE);

}

void CPrintPreviewView::OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreviewView* pView)
{
CPreviewView::OnEndPrintPreview(pDC, pInfo, point, pView);
}

void CPrintPreviewView::OnPreviewClose()
{
CPreviewView::OnPreviewClose();

CPrintFrame* pf = (CPrintFrame*)::AfxGetMainWnd();
CWinApp *pApp = AfxGetApp();
pApp->m_pMainWnd = pf->m_pOldWnd;
pf->DestroyWindow();

}

void CPrintPreviewView::OnPreviewPrint()
{
CPreviewView::OnPreviewPrint( );

//m_pPrintView->SendMessage(WM_COMMAND, ID_FILE_PRINT);

}

////PrintPreviewView.h

#pragma once

// CPrintPreviewView 视图

class CPrintPreviewView : public CPreviewView
{
DECLARE_DYNCREATE(CPrintPreviewView)

protected:
CPrintPreviewView(); // 动态创建所使用的受保护的构造函数
virtual ~CPrintPreviewView();

public:
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif

protected:
DECLARE_MESSAGE_MAP()

public:
void OnPreviewPrint();
void OnPreviewClose();
void OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreviewView* pView);
void OnDraw(CDC *pDC);

void OnPrint(CDC* pDC, CPrintInfo* pInfo);

};

// PrintView.cpp : 实现文件

//

#include “stdafx.h”
#include “MFCPrintViewApp.h”
#include “PrintView.h”
#include “PrintPreviewView.h”
#include “PrintFrame.h”

// CPrintView

IMPLEMENT_DYNCREATE(CPrintView, CView)

CPrintView::~CPrintView()
{
}

CPrintView::CPrintView() :m_rectPrint(0, 0, 10000, -200)
{
//m_rectPrint 打印区域矩形大小
}

BEGIN_MESSAGE_MAP(CPrintView, CView)
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

// CPrintView 绘图
void CPrintView::OnDraw(CDC* pDC)
{
CPrintFrame* pf = (CPrintFrame*)::AfxGetMainWnd();

//// 预览视图 拷贝
pf->m_pOldWnd->Paint(pDC);

}

// CPrintView 诊断
#ifdef _DEBUG
void CPrintView::AssertValid() const
{
CView::AssertValid();
}

#ifndef _WIN32_WCE
void CPrintView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif //_DEBUG

// 保留,暂未用
//// 打印结束回调函数
//BOOL CALLBACK _AfxPrintPreviewCloseProc(CFrameWnd* pFrameWnd)
//{
// ASSERT_VALID(pFrameWnd);
// CPrintPreviewView* pView = (CPrintPreviewView*)pFrameWnd->GetDlgItem(AFX_IDW_PANE_FIRST);
// ASSERT_KINDOF(CPreviewView, pView);
// pView->OnPreviewClose();
// return FALSE;
//}

// CPrintView 消息处理程序
BOOL CPrintView::OnPreparePrinting(CPrintInfo* pInfo)
{
pInfo->SetMaxPage(1);

return DoPreparePrinting(pInfo);

//// 注意,不可调用下句,否则报错
//return CView::OnPreparePrinting(pInfo);

}

void CPrintView::OnFilePrintPreview()
{
CPrintPreviewState* pState = new CPrintPreviewState();

//设置打印预览窗口关闭时的调用函数
//pState->lpfnCloseProc = _AfxPrintPreviewCloseProc;

//// 调用打印预览类:CPrintPreviewView
if (!DoPrintPreview(AFX_IDD_PREVIEW_TOOLBAR, this, RUNTIME_CLASS(CPrintPreviewView), pState))
{
	TRACE0("Error, DoPrintPreview failed. \n");
	AfxMessageBox(AFX_IDP_COMMAND_FAILURE);

	delete pState;
}

//// 注意,不可调用下句,否则报错
// CView::OnFilePrintPreview();

}

void CPrintView::OnInitialUpdate()
{
CView::OnInitialUpdate();

CSize sizeTotal(m_rectPrint.Width(), -m_rectPrint.Height());

}

void CPrintView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnBeginPrinting(pDC, pInfo);
}

void CPrintView::OnEndPrinting(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnEndPrinting(pDC, pInfo);
}

void CPrintView::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
CView::OnPrint(pDC, pInfo);
}

// 保留,暂未用
void CPrintView::PrintPageHeader(CDC* pDC, UINT nPageNumber, CPrintInfo* pInfo)
{
int m_cyPrinter = 1;
int m_cxOffset = 1;
int m_cxWidth = 1;

CFont *pOldFont;
CFont fontHeader;
fontHeader.CreatePointFont(100, TEXT("FixedSys"), pDC);
pOldFont = (CFont *)(pDC->SelectObject(&fontHeader));
int nPosY, nPosX;
nPosY = 3 * m_cyPrinter;
nPosX = m_cxOffset;
pDC->TextOut(nPosX, nPosY, CString(_T("北京联基动力科技有限公司")));
CString str;
str.Format(_T("第 %d 页 / 共 %d 页"), nPageNumber, pInfo->GetMaxPage());
CSize size = pDC->GetTextExtent(str);     //获取特定的字符串在屏幕上所占的宽度和高度
nPosX = m_cxOffset + m_cxWidth - size.cx;
pDC->TextOut(nPosX, nPosY, str);
pDC->MoveTo(m_cxOffset, 4 * m_cyPrinter);
pDC->LineTo(m_cxOffset + m_cxWidth, 4 * m_cyPrinter);
pDC->SelectObject(pOldFont);

fontHeader.DeleteObject();

}

/////////PrintView.h

#pragma once

// CPrintView 视图

class CPrintView : public CView
{
DECLARE_DYNCREATE(CPrintView)

protected:
CPrintView(); // 动态创建所使用的受保护的构造函数
virtual ~CPrintView();

public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif

protected:
DECLARE_MESSAGE_MAP()

public:
// 打印区域矩形大小
CRect m_rectPrint;

void OnPrint(CDC* pDC, CPrintInfo* pInfo);
void OnInitialUpdate();
void OnFilePrintPreview();
void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

BOOL OnPreparePrinting(CPrintInfo* pInfo);

// 保留,暂未用
void PrintPageHeader(CDC* pDC, UINT nPageNumber, CPrintInfo* pInfo);

};

// PrintPreviewDlg.cpp : 实现文件

//

#include “stdafx.h”
#include “MFCPrintViewApp.h”
#include “PrintPreviewDlg.h”
#include “afxdialogex.h”
#include “PrintFrame.h”
#include “ViewExt.h”

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

// CPrintPreviewDlg 对话框

CPrintPreviewDlg::CPrintPreviewDlg(CWnd* pParent / =NULL/)
CDialogEx(CPrintPreviewDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CPrintPreviewDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CPrintPreviewDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BUTTON_PRINT, &CPrintPreviewDlg::OnBnClickedButtonPrint)
ON_BN_CLICKED(IDC_BUTTON_PRINTVIEW, &CPrintPreviewDlg::OnBnClickedButtonPrintview)
END_MESSAGE_MAP()

// CPrintPreviewDlg 消息处理程序

BOOL CPrintPreviewDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
//  执行此操作
SetIcon(m_hIcon, TRUE);			// 设置大图标
SetIcon(m_hIcon, FALSE);		// 设置小图标

RECT rect;

GetClientRect(&rect);
rect.left= 10;
rect.top = 10;
rect.bottom = 700;
rect.right = 700;

CRuntimeClass* pViewRuntimeClass = RUNTIME_CLASS(CPrintView);
m_pmView = (CPrintView*)pViewRuntimeClass->CreateObject();
m_pmView->Create(NULL, NULL, WS_VISIBLE | WS_CHILD, rect, this, 123, NULL);

return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE

}

// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。

void CPrintPreviewDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文

	SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

	// 使图标在工作区矩形中居中
	int cxIcon = GetSystemMetrics(SM_CXICON);
	int cyIcon = GetSystemMetrics(SM_CYICON);

	CRect rect;

	GetClientRect(&rect);
	int x = (rect.Width() - cxIcon + 1) / 2;
	int y = (rect.Height() - cyIcon + 1) / 2;

	// 绘制图标
	dc.DrawIcon(x, y, m_hIcon);
}
else
{		
	CDialogEx::OnPaint();

	Paint(m_pmView->GetDC());
}

}

void CPrintPreviewDlg::Paint(CDC* pDC ){

pDC->MoveTo(100, 100);
pDC->LineTo(600, 600);

pDC->TextOut(30, 10, TEXT("视图打印预览 Windows 10 专业版 + VS2013 Ultimate"));
pDC->TextOut(30, 300, TEXT("程序编者:贺昌锋,微信:13087561830,2019-04-10 星期三"));

}

//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CPrintPreviewDlg::OnQueryDragIcon()
{
return static_cast(m_hIcon);
}

void CPrintPreviewDlg::OnBnClickedButtonPrint()
{
// TODO: 在此添加控件通知处理程序代码
}

void CPrintPreviewDlg::OnBnClickedButtonPrintview()
{
CPrintFrame* pf = new CPrintFrame(this);
}

// PrintPreviewDlg.h : 头文件

//
#pragma once

#include “PrintView.h”
#include “ViewExt.h”

// CPrintPreviewDlg 对话框
class CPrintPreviewDlg : public CDialogEx
{
// 构造
public:
CPrintPreviewDlg(CWnd* pParent = NULL); // 标准构造函数

// 对话框数据
enum { IDD = IDD_MFCAPPLICATION8_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

// 实现
protected:
HICON m_hIcon;

// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()

public:
afx_msg void OnBnClickedButtonPrint();
afx_msg void OnBnClickedButtonPrintview();

void Paint(CDC* pDC );

// 对话框的视图
CPrintView*		m_pmView;

};

//// Resource.h

//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ 生成的包含文件。
// 供 MFCPrintView.rc 使用
//
#define IDD_MFCAPPLICATION8_DIALOG 102
#define IDR_MAINFRAME 128
#define IDC_BUTTON_PRINT 1000
#define IDC_BUTTON_PRINTVIEW 1001

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 129
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_CONTROL_VALUE 1002
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif

///// MFCPrintView.rc

// Microsoft Visual C++ generated resource script.
//
#include “resource.h”

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include “targetver.h”
#endif
#include “afxres.h”
#include “verrsrc.h”

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE
BEGIN
“resource.h\0”
END

2 TEXTINCLUDE
BEGIN
“#ifndef APSTUDIO_INVOKED\r\n”
“#include ““targetver.h””\r\n”
“#endif\r\n”
“#include ““afxres.h””\r\n”
“#include ““verrsrc.h””\r\n”
“\0”
END

3 TEXTINCLUDE
BEGIN
“#define _AFX_NO_SPLITTER_RESOURCES\r\n”
“#define _AFX_NO_OLE_RESOURCES\r\n”
“#define _AFX_NO_TRACKER_RESOURCES\r\n”
“#define _AFX_NO_PROPERTY_RESOURCES\r\n”
“\r\n”
“#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n”
“LANGUAGE 4, 2\r\n”
"#include ““res\MFCApplication8.rc2"” // 非 Microsoft Visual C++ 编辑的资源\r\n”
“#include ““l.CHS\afxres.rc”” // 标准组件\r\n”
“#if !defined(_AFXDLL)\r\n”
“#include ““l.CHS\afxribbon.rc”” // MFC 功能区和控制条资源\r\n”
“#endif\r\n”
“#endif\r\n”
“\0”
END

#endif // APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
IDR_MAINFRAME ICON “res\MFCPrintView.ico”

/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_MFCAPPLICATION8_DIALOG DIALOGEX 0, 0, 491, 387
STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_THICKFRAME
EXSTYLE WS_EX_APPWINDOW
CAPTION “视图打印预览 — 贺昌锋”
FONT 10, “MS Shell Dlg”, 400, 0, 0x1
BEGIN
DEFPUSHBUTTON “确定”,IDOK,434,344,50,14
PUSHBUTTON “取消”,IDCANCEL,434,324,50,14
CTEXT “TODO: 在此放置对话框控件。”,IDC_STATIC,20,14,464,8
PUSHBUTTON “Print”,IDC_BUTTON_PRINT,434,278,50,14
PUSHBUTTON “PrintView”,IDC_BUTTON_PRINTVIEW,434,301,50,14
END

/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,1
PRODUCTVERSION 1,0,0,1
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x40004L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK “StringFileInfo”
BEGIN
BLOCK “080404b0”
BEGIN
VALUE “CompanyName”, “TODO: <公司名>”
VALUE “FileDescription”, “MFCPrintViewApp”
VALUE “FileVersion”, “1.0.0.1”
VALUE “InternalName”, “MFCPrintViewApp.exe”
VALUE “LegalCopyright”, “TODO: © <公司名>。 保留所有权利。”
VALUE “OriginalFilename”, “MFCPrintViewApp.exe”
VALUE “ProductName”, “TODO: <产品名>”
VALUE “ProductVersion”, “1.0.0.1”
END
END
BLOCK “VarFileInfo”
BEGIN
VALUE “Translation”, 0x804, 1200
END
END

/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_MFCAPPLICATION8_DIALOG, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 484
TOPMARGIN, 7
BOTTOMMARGIN, 380
END
END
#endif // APSTUDIO_INVOKED

#endif // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////

#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//
#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#include “res\MFCPrintView.rc2” // 非 Microsoft Visual C++ 编辑的资源
#include “l.CHS\afxres.rc” // 标准组件
#if !defined(_AFXDLL)
#include “l.CHS\afxribbon.rc” // MFC 功能区和控制条资源
#endif
#endif

/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED

猜你喜欢

转载自blog.csdn.net/weixin_40554560/article/details/89188202