1.Toolbar中,只留下向前翻页,向后翻页,和一个占据左边空位的一个无用按钮(以便两个翻页按钮能显示出来),因为MP4屏幕太小,如果按钮和电脑上面一样布局的话,按钮就很小一个,手指不好按,所以,等于就是把不要用的按钮删掉,再将要用的按钮放大.
2.ChildView中,在OnMenuOpen中,修改
CFileDialog fileDialog;
fileDialog.m_ofn.lpstrInitialDir=L"";
使打开目录设置默认路径
这样,不用每次打开新的pdf文件都得从根目录开始搜索.
3.修改书签功能
MP4因为每次重启后都会还原,而pocketxpdf的书签就存在wince的注册表中,一重启,注册表就还原了,书签也就没了,于是,想个办法,将书签存到文件上
CChildView::OnBookmarkSave保存书签
将书签保存到文件中
注意的问题:
CString中用到的很多是wchar_t类型,所以,读文件时一定要用wsprintf等配套的宽字符函数
CChildView::OnBookmarkLoad加载书签
从文件中加载书签
增加两个函数,用于从文件读写书签
void WriteToFile(int n,wchar_t* markstring){
FILE *fp;
int i=0;
if((fp=fopen(")
return;
while(!feof(fp) && markstring[i]!='\0')
{
fputc(markstring[i],fp);
i++;
}
fclose(fp);
delete[]markstring;
}
CString ReadFromFile()
{
CString bookmark;
FILE *fp;
if((fp=fopen(")
return CString("");
wchar_t temp;
while(!feof(fp))
{
temp=fgetc(fp);
bookmark.AppendChar(temp);
}
fclose(fp);
return bookmark;
}
CChildView::OnUpdateBookmarkSave和CChildView::OnUpdateBookmarkLoad中
将CWinApp *app=AfxGetApp();CString bookmark = app->GetProfileString(L"Xpdf",entryname,L"");部分是从注册表读字符串,删掉,用上面的ReadFromFile代替:
CString bookmark=ReadFromFile();
GetBookmarkString()包括文件名,当前页,renderDPI,Rotation,m_ViewOffsetX,m_ViewOffsetY等
,重载了一个
wchar_t* CChildView::GetBookmarkString(int temp)
{
wchar_t *bookmark=new wchar_t[255];
wsprintf(bookmark,L"%s\n%d\n%f\n%d\n%d\n%d\n",
m_PDFDoc->getFileName()->getCStringW(),
m_CurrentPage,
m_renderDPI,
m_Rotation,
m_ViewOffsetX,
m_ViewOffsetY);
return bookmark;
}
4.翻往后一页或前一页,偏移回到左上角
因为后翻一页,新的一页行数还是在上一页的位置,不方便,改之
CChildView::OnNextPage()中GotoPage(m_CurrentPage + 1, m_ViewOffsetX改为0, m_ViewOffsetY改为0);
同样CChildView::OnPrevPage()中GotoPage(m_CurrentPage - 1, 0, 0);
阅读(1138) | 评论(0) | 转发(0) |