所需阅读权限 1
[分享]初谈BREW上构建小型WINDOW机制
[这个帖子最后由cnangel在 2004/05/26 12:20pm 第 1 次编辑]
作者:ylxf
作者发现在BREW上没有方便的可以重用的代码,以及适合的窗口机制,每个工程都需要重新开始。所以作者进行了以下设想:
例子工程: StockFA.sap- //------- brewwin.h begin-------//
- #include <aeestdlib.h>
- typedef unsigned int UINT;
- inline void* operator new(UINT size)
- {
- return MALLOC(size);
- }
- inline void operator delete(void * ptr)
- {
- FREE(ptr);
- }
- inline void* operator new[](UINT size)
- {
- return MALLOC(size);
- }
- inline void operator delete[](void * ptr)
- {
- FREE(ptr);
- }
- class CWindow
- {
- virtual FinalConstruct();//初始化
- virtual FinalRelease();//最后释放
- virtual Enable(boolean bEnable);//目前显示有效,否则释放数据和资源
- virtual ReDraw();
- virtual boolean OnEvent(AEEEvent evt, uint16 wParam, uint32 dwParam);
- }
- class CWndManage
- {
- //管理窗口
- Add(CWindow * PWnd);
- Remove(CWindow * PWnd);
- RemoveAll();
- MoveToTop(CWindow * pWnd);
- GetTopWnd(CWindow ** ppWnd);
- //表现窗口
- Show(CWindow * pWnd ,uint16 nCmd);
- //事件处理
- boolean OnEvent(AEEEvent evt, uint16 wParam, uint32 dwParam);//转发事件到当前窗口
- //基础函数
- }
- //array
- template <class T>
- class CArray
- {
- T* m_aT;
- int m_nSize;
- BOOL Add(T& t)
- //...注意分配内存用BREW环境的
- }
- //------- brewwin.h end-------//
- //-------具体工程的文件
- class StockTrade : public CWindow
- {
- //保存现场变量,用于恢复
- //虚函数的实现
- }
- class StockFAApp : public CWndManage
- {
- //适应BREW 的函数,分配和释放
- //。。。略
- //调用 CWndManage 的基本函数实现
- //其他特色的数据变量
- }
复制代码 |