📄 bookinfoview.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 + -