Board logo

标题: [分享]初谈BREW上构建小型WINDOW机制 [打印本页]

作者: cnangel    时间: 2004-3-5 12:58     标题: [分享]初谈BREW上构建小型WINDOW机制

[这个帖子最后由cnangel在 2004/05/26 12:20pm 第 1 次编辑]

作者:ylxf
作者发现在BREW上没有方便的可以重用的代码,以及适合的窗口机制,每个工程都需要重新开始。所以作者进行了以下设想:
例子工程: StockFA.sap
  1. //------- brewwin.h  begin-------//
  2. #include <aeestdlib.h>
  3. typedef unsigned int UINT;
  4. inline void* operator new(UINT size)
  5. {
  6. return MALLOC(size);
  7. }
  8. inline void operator delete(void * ptr)
  9. {
  10. FREE(ptr);
  11. }
  12. inline void* operator new[](UINT size)
  13. {
  14. return MALLOC(size);
  15. }
  16. inline void operator delete[](void * ptr)
  17. {
  18.         FREE(ptr);
  19. }
  20. class CWindow
  21. {
  22.     virtual FinalConstruct();//初始化
  23.     virtual FinalRelease();//最后释放
  24.     virtual Enable(boolean bEnable);//目前显示有效,否则释放数据和资源
  25.     virtual ReDraw();
  26.     virtual boolean OnEvent(AEEEvent evt, uint16 wParam, uint32 dwParam);
  27. }
  28. class CWndManage
  29. {
  30.     //管理窗口
  31.     Add(CWindow * PWnd);
  32.     Remove(CWindow * PWnd);
  33.     RemoveAll();
  34.     MoveToTop(CWindow * pWnd);
  35.     GetTopWnd(CWindow ** ppWnd);
  36.     //表现窗口
  37.     Show(CWindow * pWnd ,uint16 nCmd);
  38.     //事件处理
  39.     boolean OnEvent(AEEEvent evt, uint16 wParam, uint32 dwParam);//转发事件到当前窗口
  40.     //基础函数   
  41. }
  42. //array
  43. template <class T>
  44. class CArray
  45. {
  46.     T* m_aT;
  47.     int m_nSize;
  48.     BOOL Add(T& t)
  49.     //...注意分配内存用BREW环境的
  50. }
  51. //------- brewwin.h  end-------//
  52. //-------具体工程的文件
  53. class StockTrade : public CWindow
  54. {
  55.     //保存现场变量,用于恢复
  56.     //虚函数的实现   
  57. }
  58. class StockFAApp : public CWndManage
  59. {
  60.     //适应BREW 的函数,分配和释放
  61.     //。。。略
  62.     //调用 CWndManage  的基本函数实现
  63.     //其他特色的数据变量
  64. }
复制代码





欢迎光临 星星博客 (http://commerce.huhoo.net/) Powered by Discuz! 7.0.0