做个PDF格式电子图书浏览器
2006-07-22 22:02:07 来源:WEB开发网图6
声明后,打开Classwizard(类向导),选择"Member Variables",选择"Add Variable",为IDC_FIND映射float类型变量m_find。
图7
现在往菜单视图里加入"自定义大小",ID为ID_SET_SIZE,相应函数极其代码如下: void CPdfReaderDlg::OnSetSize()
仅仅加入这些代码,还不行,在OSetSize()直接使用CFind,这个类还没有声明,因此我们需要在"PdfReaderDlg.h"里加入"Find.h". 如果考虑到"打印"的话,在菜单里加入"打印",ID为ID_PRINT_PDFFILE,映射对应函数:
{
CFind getsize;
getsize.DoModal();
m_PdfFile.setZoom(getsize.m_find);
}void CPdfReaderDlg::OnPrintPdffile()
到此时,我们的这个PDF电子图书浏览器算是初具规模了。下面我们要添加一些小的功能。 比如在窗口栏内显示阅读PDF电子图书的名称。这项功能可在下面函数里添加:
{
m_PdfFile.Print();
}void CPdfReaderDlg::OnOpenPdffile()
我们要对这个浏览器整容,我们要给对话框添加红色背景。 SetDialogBkColor(RGB(255,0,0) ); 把上面这句添加到InitInstance()里既可。我们运行出来的对话框左上角的那个系统默认图标,实在没有个性。好办,我们要换成我们喜欢的小图标。首先用鼠标选中,按"Delete"键删除系统默认ICO图标,然后在Menu上右键单击,选择"Insert",在下面的出现的对话框中选中"Icon",单击"Import"按钮选择你要插入的Icon图标。在新插入的Icon图标上单击右键,选择"Properties",把其ID修改为"IDR_MAINFRAME",现在运行一下,看看效果。
{ CString m_Caption; //新添加的一个变量,用于显示窗口标题
CString m_Word=" 现在正在观看:";//也是新添加的
char szFileFilter[]="PDF File(*.pdf)|*.pdf|All File(*.*)|*.*||";
CFileDialog FileDialog(TRUE,NULL,NULL,OFN_HIDEREADONLY,szFileFilter);
if(FileDialog.DoModal()==IDOK)
{ CString FileName=FileDialog.GetFileTitle();
m_Caption=m_Word+FileName;//CString类型的重载操作。
SetWindowText(m_Caption);//设置在窗口显示
CString PathName=FileDialog.GetPathName();
m_PdfFile.LoadFile(PathName);
}
}
图8
我们的程序到此算是告一段落了。下面我们要总结一下。我们从加入的"Acrobat Control 用于ActiveX"控件所产生的类"CPdf"引用的函数有:
BOOL CPdf::LoadFile(LPCTSTR fileName)
这些函数相对于类"CPdf"来说,只是很少的一部分,下面就要看各位的努力去丰富我们的"PdfReader"浏览器了。因为,本文的目的,不仅仅是教会您如何做一个PDF浏览器,而是通过做这么个简易的浏览器,触类旁通。如果您仔细的阅读了本文,那么首先庆祝您现在利用FLASH控件"Shockwave Flash Object ",Windows Media Player提供的"ActiveMovieObject Control"控件,还有RealOne Player播放器提供的控件"RealPlayer G2 Control"(前提是你的电脑上面安装有RealOne)等一类控件可以自己制作完全属于自己的FLASH播放器,Windows Media播放器,以及RealOne 播放器等。最后需要说明的是,关于添加控件,也可以在对话框内右键单击,选择"Insert ActiveX Control",在下面出现的控件选择对话框里选择我们需要用到的控件既可。下面的步骤和我们在前面所介绍的步骤类似,在此不再介绍。
void CPdf::Print() //用于打印文件
void CPdf::setZoom(float percent)//设置页面的大小
void CPdf::gotoFirstPage()//到第一页
void CPdf::gotoLastPage()//到最后一页
void CPdf::gotoNextPage()//到下一页
void CPdf::gotoPreviousPage()//到上一页
更多精彩
赞助商链接