近日學習了BREW的開發後,目前自己範圍內感覺:
沒有方便的可以重用的代碼
以及適合的窗口機制,每個工程都要重新開始
所有了這個設想,初步談談,拋磚引玉~~
關鍵字:BREW,可重用,C++,窗口管理,事件投遞
例子工程: StockFA.sap
//------- brewwin.h begin-------// #include 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 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 的基本函數實現 //其他特色的數據變量 }
初來鍘刀,歡迎批評指教,不勝感激。。
唐建