Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103215
  • 博文数量: 19
  • 博客积分: 1550
  • 博客等级: 上尉
  • 技术积分: 246
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-15 19:50
文章分类

全部博文(19)

文章存档

2013年(1)

2012年(4)

2010年(8)

2009年(6)

我的朋友

分类: WINDOWS

2009-10-21 19:19:21

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) |
给主人留下些什么吧!~~