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

📄 bookinfoview.cpp

📁 个人电子图书管理系统.提供电子书的书名和其他信息.检查电子书信息的合法性(E-1) .为这本电子书生成 id.使用分类id
💻 CPP
字号:
// GUI/BookInfoView.cpp : 实现文件
//
#include "stdafx.h"
#include "KingBook.h"
#include "BookInfoView.h"
#include "KingBookDoc.h"

// CBookInfoView

IMPLEMENT_DYNCREATE(CBookInfoView, CHtmlView)

CBookInfoView::CBookInfoView()
{

}

CBookInfoView::~CBookInfoView()
{
}

void CBookInfoView::DoDataExchange(CDataExchange* pDX)
{
	CHtmlView::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CBookInfoView, CHtmlView)
END_MESSAGE_MAP()


// CBookInfoView 诊断

#ifdef _DEBUG
void CBookInfoView::AssertValid() const
{
	CHtmlView::AssertValid();
}

void CBookInfoView::Dump(CDumpContext& dc) const
{
	CHtmlView::Dump(dc);
}
#endif //_DEBUG


// CBookInfoView 消息处理程序



/// <summary>更新视图</summary>
/// <param name="pSender">忽略.</param>
/// <param name="lHint">[IN]更新视图的原因代码.</param>
/// <param name="pHint">忽略.</param>
/// <returns>void</returns>
/// <exception>NULL</exception>
/// <remarks>lHint原因为:IDUP_LISTVIEW, IDUP_DOC_BOOK, 更新视图
/// </remarks>
void CBookInfoView::OnUpdate(CView* pSender, LPARAM lHint, CObject* /*pHint*/)
{
    if(lHint != IDUP_LISTVIEW  && lHint != IDUP_DOC_BOOK)
        return;
    CKingBookDoc* pDoc = (CKingBookDoc*)this->GetDocument();
    std::string fileName = ((CKingBookApp*)AfxGetApp())->GetTemp();
    fileName = fileName + "\\" + pDoc->GetShownBook() + ".xml";
    this->Navigate2(fileName.c_str(), 0);

}


/// <summary>在导航到某个URL之前...</summary>
/// <param name="lpszURL">[IN] 目的URL</param>
/// <param name="pbCancel">[IN OUT] 继续:0 / 取消:1</param>
/// <returns>void</returns>
/// <exception>NULL</exception>
/// <remarks>导航到两种URL
///  <list type="bullet">
///  <item><description><b>导航到图书信息文件:</b>这是由视图更新产生;继续导航, 在窗口里显示图书的信息</description></item>
///  <item><description><b>导航到图书文件:</b>由点击网页上的链接产生;取消导航, 调用CKingBookDoc::OpenBook(lpszURL)打开图书</description></item>
///  </list>
/// </remarks>
void CBookInfoView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)
{    
    // 判断导航到图书信息文件 还是图书的URL
    CKingBookApp* pApp = ((CKingBookApp*)AfxGetApp());
    CKingBookDoc* pDoc = (CKingBookDoc*)this->GetDocument();
    std::string url = lpszURL;
    if(url.find(pApp->GetTemp()) != std::string::npos) // 导航到图书信息文件
    {
        //MessageBox(_T("(pApp->GetBookInfo() == std::string(lpszURL)"));
        CHtmlView::OnBeforeNavigate2(lpszURL, nFlags, lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel);
    }
    else
    {
        *pbCancel = 1; // 取消导航
        //CHtmlView::OnBeforeNavigate2(_T("about:blank"), nFlags, lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel);
        // 使用点击的链接 打开图书
        pDoc->OpenBook(CString(lpszURL));        
    }
    //*pbCancel = 1; // 取消导航
}


⌨️ 快捷键说明

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