[原創]初談BREW上構建小型WINDOW機制

近日學習了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  的基本函數實現
    //其他特色的數據變量
}



初來鍘刀,歡迎批評指教,不勝感激。。

唐建

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章