⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 librarymanageview.cpp

📁 LibraryManageDM.rar 数据库设计图书馆管理系统
💻 CPP
字号:
// LibraryManageView.cpp : CLibraryManageView 类的实现
//

#include "stdafx.h"
#include "LibraryManage.h"

#include "LibraryManageDoc.h"
#include "LibraryManageView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// CLibraryManageView

IMPLEMENT_DYNCREATE(CLibraryManageView, CView)

BEGIN_MESSAGE_MAP(CLibraryManageView, CView)
	// 标准打印命令
	//{{AFX_MSG_MAP(CLibraryManageView)
	ON_COMMAND(ID_FILE_PRINT, OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, OnFilePrintPreview)
	ON_WM_RBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// CLibraryManageView 构造/析构

CLibraryManageView::CLibraryManageView()
{
	// TODO: 在此处添加构造代码
	bLoaded = FALSE;
}

CLibraryManageView::~CLibraryManageView()
{
}

BOOL CLibraryManageView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: 在此处通过修改
	//  CREATESTRUCT cs 来修改窗口类或样式

	return CView::PreCreateWindow(cs);
}

// CLibraryManageView 绘制

void CLibraryManageView::OnDraw(CDC* pDC)
{
	CLibraryManageDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO: 在此处为本机数据添加绘制代码
	if (!bLoaded)
		bLoaded = pDoc->m_Dib.LoadFromFile(_T("res\\background.bmp"));
	CBitmap bmp;	  
	bmp.LoadBitmap(IDB_BGBITMAP);        // 取出位图
	POINT	ptSize;
	CDC		dcmem;
	BITMAP	bm;
	dcmem.CreateCompatibleDC(pDC);                //创建兼容设备上下文。
	dcmem.SelectObject(&bmp);                      //用设备上下文选择位图;
	dcmem.SetMapMode(pDC->GetMapMode());        //设置映射方式;
	GetObject(bmp.m_hObject, sizeof(BITMAP), (LPSTR)&bm); //映射位图;
	ptSize.x=bm.bmWidth;
	ptSize.y=bm.bmHeight;
	pDC->DPtoLP((LPPOINT)&ptSize,1);              //设备单元to逻辑单元;
	CRect ViewRect;
	GetClientRect(&ViewRect);
	double ViewWidth  = ViewRect.Width();
	double ViewHeight = ViewRect.Height();
	double BMPWidth   = bm.bmWidth;
	double BMPHeight  = bm.bmHeight;
	double dZoomX, dZoomY;
	dZoomX = ViewWidth / BMPWidth;
	dZoomY = ViewHeight / BMPHeight;
	pDoc->m_dZoom = (dZoomX > dZoomY) ? dZoomX : dZoomY;

	int width,height;
	width = int(pDoc->m_Dib.GetWidth() * pDoc->m_dZoom);
	height = int(pDoc->m_Dib.GetHeight() * pDoc->m_dZoom);
	pDoc->m_Dib.Stretch(pDC->m_hDC, 0, 0, width, height, 0, 0,
		pDoc->m_Dib.GetWidth(), pDoc->m_Dib.GetHeight(),
		DIB_RGB_COLORS, SRCCOPY);
}


// CLibraryManageView 打印

BOOL CLibraryManageView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// 默认准备
	return DoPreparePrinting(pInfo);
}

void CLibraryManageView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 添加额外的打印前进行的初始化过程
}

void CLibraryManageView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: 添加打印后进行的清理过程
}


// CLibraryManageView 诊断

#ifdef _DEBUG
void CLibraryManageView::AssertValid() const
{
	CView::AssertValid();
}

void CLibraryManageView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CLibraryManageDoc* CLibraryManageView::GetDocument() const // 非调试版本是内联的
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLibraryManageDoc)));
	return (CLibraryManageDoc*)m_pDocument;
}
#endif //_DEBUG


// CLibraryManageView 消息处理程序

void CLibraryManageView::OnRButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CMenu menu;
    if(!menu.LoadMenu(IDR_POPMENU))
        AfxThrowResourceException();
    CMenu* pPopMenu=menu.GetSubMenu(0);
    ASSERT(pPopMenu!=NULL);

	CPoint pt;
	GetCursorPos(&pt);
	
    //! 在鼠标标识的位置弹出菜单
	pPopMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON, 
		pt.x, pt.y, AfxGetMainWnd());
	CView::OnRButtonDown(nFlags, point);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -