1 /* 2 ��示下载图表的滚动窗口 3 4 2006/07/12 5 6 */ 7 8 #include <wx/wx.h> 9 #include <wx/bitmap.h> 10 #include "common.h" 11 #include <vector> 12 13 DECLARE_EVENT_TYPE( mgID_8K, -1 ) 14 DECLARE_EVENT_TYPE( mgID_16K, -1 ) 15 DECLARE_EVENT_TYPE( mgID_32K, -1 ) 16 DECLARE_EVENT_TYPE( mgID_64K, -1 ) 17 DECLARE_EVENT_TYPE( mgID_128K, -1 ) 18 DECLARE_EVENT_TYPE( mgID_256K, -1 ) 19 DECLARE_EVENT_TYPE( mgID_512K, -1 ) 20 DECLARE_EVENT_TYPE( mgID_1M, -1 ) 21 DECLARE_EVENT_TYPE( mgID_2M, -1 ) 22 DECLARE_EVENT_TYPE( mgID_4M, -1 ) 23 24 class CShowTableWindow : public wxScrolledWindow 25 { 26 27 public: 28 CShowTableWindow( wxWindow* parent ); 29 void SetRange( llong to, llong from , int nsize, bindex data[] ); //设置文件范围 30 void SetUnit( int kbyte ); //设置显示单元 31 void SetData( int segs, bindex data[] ); //设置当前的完成数据 32 33 protected: 34 virtual void OnDraw( wxDC& dc ); 35 void DrawBlock( wxDC& dc, wxPoint& base, int line , int col, int color ); 36 int GetBlockColor( int totalline, int totalcol, int line, int col ); 37 void On8K( wxCommandEvent& event ); 38 void On16K( wxCommandEvent& event ); 39 void On32K( wxCommandEvent& event ); 40 void On64K( wxCommandEvent& event ); 41 void On128K( wxCommandEvent& event ); 42 void On256K( wxCommandEvent& event ); 43 void On512K( wxCommandEvent& event ); 44 void On1M( wxCommandEvent& event ); 45 void On2M( wxCommandEvent& event ); 46 void On4M( wxCommandEvent& event ); 47 void OnMouseEvent( wxMouseEvent& event ); 48 void OnSize( wxSizeEvent& event ); 49 50 private: 51 wxBitmap m_GrayBlock; 52 wxBitmap m_YellowBlock[ 10 ]; 53 wxBitmap m_GreenBlock; 54 //开始显示位置 55 llong m_from; 56 //结束显示位置 57 llong m_to; 58 //缺省的显示单元大小,单位K(1024字节) 59 int m_unit; 60 //数据块的数量 61 int m_nBlock; 62 //强制刷新 63 bool m_bForceUpdata; 64 //保存的用于刷新的数据 65 std::vector<bindex> m_DataList; 66 67 DECLARE_EVENT_TABLE() 68 }; 69 70