wxWidgets access html file in zip package

/************************************************************************
* Description: 访问zip中的htm 之 Widgets学习
* Author: Bill Adams
* Compiled: VC8 + wxWidgets2.8.10
* Date: 04/02/10
************************************************************************/
 

/************************************************************************ 
 * Description: 访问zip中的htm 之 Widgets学习 
 * Author: Bill Adams 
 * Compiled: VC8 + wxWidgets2.8.10 
 * Date: 04/02/10 
 ************************************************************************/ 
#include "wx/wx.h" 
#include "wx/image.h" 
#include "wx/html/htmlwin.h" 
#include "wx/fs_zip.h" 
class AppMain : public wxApp { 
    public: virtual bool OnInit(); 
    protected: private: 
}; 

class FrameMain : public wxFrame { 
    public: FrameMain( const wxString& title, const wxPoint& pos, const wxSize& size ); 
    void OnQuit( wxCommandEvent& event ); 
    void OnBack( wxCommandEvent& event ); 
    void OnForward( wxCommandEvent& event); 
    protected: private: DECLARE_EVENT_TABLE() 
}; 

enum { // 菜单ID 
    Minimal_Quit = 1, 
    Minimal_Back, 
    Minimal_Forward, 
}; 

// 事件表 
BEGIN_EVENT_TABLE( FrameMain, wxFrame ) 
    EVT_MENU( Minimal_Quit, FrameMain::OnQuit ) 
    EVT_MENU( Minimal_Back, FrameMain::OnBack ) 
    EVT_MENU( Minimal_Forward, FrameMain::OnForward ) 
END_EVENT_TABLE() 

// 指定入口类 
IMPLEMENT_APP( AppMain ) 
// 入口开始点 
bool AppMain::OnInit() { 
    wxImage::AddHandler(new wxPNGHandler); 
    wxImage::AddHandler(new wxJPEGHandler); 
    wxFileSystem::AddHandler(new wxZipFSHandler); 
    
    FrameMain *frame = new FrameMain( wxT("Zip and Html测试"), wxDefaultPosition, wxSize( 1024, 768 ) ); 
    frame->Show( true ); 
    SetTopWindow( frame ); 
    return true; 
} 

wxHtmlWindow *html = NULL; 
FrameMain::FrameMain( const wxString& title, const wxPoint& pos, const wxSize& size ) : wxFrame( (wxFrame *)NULL, wxID_ANY, title, pos, size ) { 
    wxMenu *menuFile = new wxMenu;
    wxMenu *menuNavi = new wxMenu; 
    // 创建菜单 
    menuFile->Append( Minimal_Quit, wxT("退出(&E)") ); 
    menuNavi->Append( Minimal_Back, wxT("后退(&B)") ); 
    menuNavi->Append( Minimal_Forward, wxT("向前(&F)") ); 
    wxMenuBar *menuBar = new wxMenuBar; 
    menuBar->Append( menuFile, wxT("文件(&F)") ); 
    menuBar->Append( menuNavi, wxT("导航(&N)") ); 
    // 挂载菜单 
    SetMenuBar( menuBar ); 
    // 设定状态栏 
    CreateStatusBar( 2 ); 
    html = new wxHtmlWindow( this ); 
    html->SetRelatedFrame( this, wxT("HTML:%s") ); 
    html->SetRelatedStatusBar( 0 ); 
    html->LoadPage( wxT("start.htm") ); 
} 

//---------------------------------------------------------------------- 
// 退出 
void FrameMain::OnQuit( wxCommandEvent& WXUNUSED(event) ) { 
    Close( true ); 
} 

//---------------------------------------------------------------------- 
// 后退 
void FrameMain::OnBack( wxCommandEvent& WXUNUSED(event) ) { 
    if ( !html->HistoryBack() ) { 
        wxMessageBox( wxT("这是最后一条历史记录了~~~") ); 
    } 
} 

//---------------------------------------------------------------------- 
// 前进 
void FrameMain::OnForward( wxCommandEvent& WXUNUSED(event) ) { 
    if ( !html->HistoryForward() ) { 
        wxMessageBox( wxT("没有更多历史记录了~~~") ); 
    }
} 

/************************************************************************ 
 * 附:start.htm源码 
 * <html><body> <h1>ZIP archive</h1> <h3>feature demo</h3> <p> Click on this <a href="pages.zip#zip:test.htm" mce_href="pages.zip#zip:test.htm">link</a> to load page stored in ZIP archive (<a href="pages.zip" mce_href="pages.zip">pages.zip</a>). Enjoy it! </body></html> 
 * 依赖: wxmsw28ud_html.lib wxmsw28ud_core.lib wxbase28ud.lib wxtiffd.lib wxjpegd.lib wxpngd.lib wxzlibd.lib wxregexud.lib wxexpatd.lib winmm.lib comctl32.lib rpcrt4.lib wsock32.lib odbc32.lib 
 ************************************************************************/

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bill Adams

喜欢?打赏一杯阔乐吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值