📄 aboutview.cpp
字号:
// AboutView.cpp: implementation of the CAboutView class.
//
//////////////////////////////////////////////////////////////////////
#include "AboutView.h"
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CAboutView::CAboutView()
{
}
CAboutView::CAboutView(CGameDoc* pDoc)
{
SetDocument(pDoc);
}
CAboutView::~CAboutView()
{
}
bool CAboutView::OnInitData()
{
LoadAboutHtml();
// 将键盘按键全部清空
m_pDoc->GetKeyControl()->InitData();
m_nTextIndex = 0;
return true;
}
void CAboutView::OnResume()
{
CBaseView::OnResume();
}
void CAboutView::OnSetTimer()
{
// 设置定时器
SetTimer(TIME_VIEW, (PFNNOTIFY)(CAboutView::HandleTimer));
}
void CAboutView::OnStartView()
{
// 初始化对象
if (!OnInitData())
{
Release();
return;
}
m_pDoc->SetCurView(this);
// 将定时器与回调函数关联
CALLBACK_Init(&m_cbTimer, (PFNNOTIFY)HandleTimer, this);
OnSetTimer();
}
void CAboutView::OnSuspend()
{
// 结束定时器
CALLBACK_Cancel(&m_cbTimer);
// 释放资源
CBaseView::OnSuspend();
}
void CAboutView::OnTimer()
{
// 重新计算数据
if (m_pDoc == NULL)
return;
// 在Doc里处理按键事件
if (!m_pDoc->UpdateAboutView())
return;
CGameApp* pApp = NULL;
// 获取应用程序指针
BEGIN_CHECK
{
// 取app指针
CHECK_NULL(pApp, (CGameApp*) GETAPPINSTANCE());
CHECK_ERROR(ISHELL_SetTimerEx(pApp->m_pIShell, TIME_VIEW, &m_cbTimer));
}
CATCH_CHECK
{
return;
}
END_CHECK
}
void CAboutView::HandleTimer(void* pView)
{
((CAboutView* )pView)->OnTimer();
}
bool CAboutView::SetTimer(int32 dwInterval, PFNNOTIFY pfnCallback)
{
CGameApp* pApp = NULL;
BEGIN_CHECK
{
// 取app指针
CHECK_NULL(pApp, (CGameApp*) GETAPPINSTANCE());
CHECK_ERROR(ISHELL_SetTimerEx(pApp->m_pIShell, dwInterval, &m_cbTimer));
}
CATCH_CHECK
{
return false;
}
END_CHECK
return true;
}
void CAboutView::FreeResourse()
{
// 设置定时器结束标志
m_pDoc->SetExitTimer(true);
if (m_pHtmlView)
{
IHTMLVIEWER_Release(m_pHtmlView);
m_pHtmlView = NULL;
}
// 结束定时器
CALLBACK_Cancel(&m_cbTimer);
}
void CAboutView::ExitView()
{
// 设置定时器结束标志
m_pDoc->SetExitTimer(true);
// 结束定时器
CALLBACK_Cancel(&m_cbTimer);
m_pDoc->SwitchView(ID_VIEW_MENU);
}
void CAboutView::LoadAboutHtml()
{
void * pSource = NULL;
char* pGround = NULL;
uint32 nSize;
uint16 nOffset = 0;
pSource = ISHELL_LoadResDataEx (((CGameApp*)GETAPPINSTANCE())->m_pIShell,
EIDOLON_RES_FILE, IDHTML_ABOUTTEXT, RESTYPE_IMAGE, NULL, &nSize);
if (pSource == NULL)
{
ISHELL_FreeResData(((CGameApp*)GETAPPINSTANCE())->m_pIShell, pSource);
return;
}
nOffset = *((uint16*)pSource);
pGround = (char* )pSource + nOffset;
if (ISHELL_CreateInstance(((CGameApp*)GETAPPINSTANCE())->m_pIShell,
AEECLSID_HTML, (void** )&m_pHtmlView) != SUCCESS)
return;
AEERect rect;
// IHTMLVIEWER_SetProperties(m_pHtmlView, HVP_SCROLLBAR);
IHTMLVIEWER_SetProperties(m_pHtmlView, 0);
IHTMLVIEWER_SetVSpace(m_pHtmlView, 12);
IHTMLVIEWER_SetSBWidth(m_pHtmlView,12);
SETAEERECT(&rect,0,0,BACKGROUND_WIDTH,BACKGROUND_HEIGTH);
IHTMLVIEWER_SetRect(m_pHtmlView,&rect);
IHTMLVIEWER_SetData(m_pHtmlView,pGround, nSize-nOffset);
IHTMLVIEWER_Redraw(m_pHtmlView);
ISHELL_FreeResData (((CGameApp*)GETAPPINSTANCE())->m_pIShell, pSource);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -