做个PDF格式电子图书浏览器
2006-07-22 22:02:07 来源:WEB开发网现在,为了使我们的这个PdfReader工作,我们要在菜单中加入"打开",其ID可为ID_OPEN_PDFFILE,我们选择把"Pop-up"前的钩去除(注:如无说明,在菜单内加入其它选项,都是按照把"Pop-up"前钩去掉处理)。
图3
下面要用到ClassWizard(类向导)为刚刚加入的ID映射函数OnOpenPdffile()。
图4
此时需要在CPdfReaderDlg加入:
public:CPdf m_PdfFile;
响应ID_OPEN_PDFFILE"打开"代码: void CPdfReaderDlg::OnOpenPdffile()
因为在上面的代码中我们直接引用PDF控件所产生类的函数的LoadFile(),很显然我们需要在"PdfReaderDlg.h"中加入"#include "pdf.h"."也许心情迫切的你想编译现在的程序,行啊。运行一下,没有什么错误。选择"打开",找到具有".pdf"格式的文件,可是会出现系统的警告错误。是什么原因呢,请想一想啊。对,我们还没有给控件在对话框内分配其存在空间呢。下面就是我们要做的。 利用Classwizard(类向导),为WM_CREATE消息映射个函数OnCtreate().其代码如下:
{
char szFileFilter[]="PDF File(*.pdf)|*.pdf|All File(*.*)|*.*||";
CFileDialog FileDialog(true,"","",OFN_EXPLORER,szFileFilter,this);
if(FileDialog.DoModal()==IDOK)
{
CString FilePath=FileDialog.GetPathName();
m_PdfFile.LoadFile(FilePath);
}
}int CPdfReaderDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
这时候你再编译,是不是可以观看PDF格式电子图书了?但是,细心的你,是不是发现,我们的窗口既没有最大化、最小化按钮,也不能在对话框边角位置拖动其大小。不用急,下面我们就准备做这些工作。
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rect;
GetWindowRect(&rect);
m_PdfFile.Create(NULL,WS_VISIBLE,rect,this,0);
return 0;
}
更多精彩
赞助商链接