界面處理類 CShowGUI,數(shù)據(jù)上傳類 CUploadData
class CUploadData
{
......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
int UploadFile(LPCTSTR lpFileNamePath,LPVOID lparam,SetUploadCaller Caller );
// 接受外界出入的參數(shù),主要是回調(diào)函數(shù)的地址通過參數(shù)Caller,
int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
...... // 注意此時(shí)不在需要GetCurState 函數(shù)了 。
}
class CShowGUI: public CDialog
{
.......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
void SetCallBack(LPCTSTR strPath);
static int GetCurState(int nCurData, int nInAll, void * pParam) ;
CUploadData m_Uploa
d ; // 數(shù)據(jù)上傳類是界面顯示類的一個(gè)成員變量。
.......
}
void CShowGUI :: SetCallBack(LPCTSTR strPath)
{
CUploadData myUploadData ;
SetUploadCaller myCaller; // 聲明一個(gè)函數(shù)指針變量
myCaller = CurState ; // 取得界面處理函數(shù)的地址
myUploadData .UploadFile(strPath,this,myCaller); // 界面處理類的函數(shù)傳入,實(shí)現(xiàn)了數(shù)據(jù)傳入與界面處理的分離 .
}
通過上面的演示做到了界面與數(shù)據(jù)的分離,回調(diào)函數(shù)分別扮演了不同角色,所以隨著處理問題的不同應(yīng)靈活應(yīng)用,但同樣因?yàn)樘幚頂?shù)據(jù)類不知道界面處理類或外部調(diào)用類的類型,而更無法靈活地處理界面的不同顯示方式。這方面還希望喜歡鉆研技術(shù)的朋友繼續(xù)研究。
界面處理類 CShowGUI,數(shù)據(jù)上傳類 CUploadData
class CUploadData
{
......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
int UploadFile(LPCTSTR lpFileNamePath,LPVOID lparam,SetUploadCaller Caller );
// 接受外界出入的參數(shù),主要是回調(diào)函數(shù)的地址通過參數(shù)Caller,
int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
...... // 注意此時(shí)不在需要GetCurState 函數(shù)了 。
}
class CShowGUI: public CDialog
{
.......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
void SetCallBack(LPCTSTR strPath);
static int GetCurState(int nCurData, int nInAll, void * pParam) ;
CUploadData m_Uploa
d ; // 數(shù)據(jù)上傳類是界面顯示類的一個(gè)成員變量。
.......
}
void CShowGUI :: SetCallBack(LPCTSTR strPath)
{
CUploadData myUploadData ;
SetUploadCaller myCaller; // 聲明一個(gè)函數(shù)指針變量
myCaller = CurState ; // 取得界面處理函數(shù)的地址
myUploadData .UploadFile(strPath,this,myCaller); // 界面處理類的函數(shù)傳入,實(shí)現(xiàn)了數(shù)據(jù)傳入與界面處理的分離 .
}
通過上面的演示做到了界面與數(shù)據(jù)的分離,回調(diào)函數(shù)分別扮演了不同角色,所以隨著處理問題的不同應(yīng)靈活應(yīng)用,但同樣因?yàn)樘幚頂?shù)據(jù)類不知道界面處理類或外部調(diào)用類的類型,而更無法靈活地處理界面的不同顯示方式。這方面還希望喜歡鉆研技術(shù)的朋友繼續(xù)研究
class CUploadData
{
......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
int UploadFile(LPCTSTR lpFileNamePath,LPVOID lparam,SetUploadCaller Caller );
// 接受外界出入的參數(shù),主要是回調(diào)函數(shù)的地址通過參數(shù)Caller,
int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
...... // 注意此時(shí)不在需要GetCurState 函數(shù)了 。
}
class CShowGUI: public CDialog
{
.......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
void SetCallBack(LPCTSTR strPath);
static int GetCurState(int nCurData, int nInAll, void * pParam) ;
CUploadData m_Uploa
d ; // 數(shù)據(jù)上傳類是界面顯示類的一個(gè)成員變量。
.......
}
void CShowGUI :: SetCallBack(LPCTSTR strPath)
{
CUploadData myUploadData ;
SetUploadCaller myCaller; // 聲明一個(gè)函數(shù)指針變量
myCaller = CurState ; // 取得界面處理函數(shù)的地址
myUploadData .UploadFile(strPath,this,myCaller); // 界面處理類的函數(shù)傳入,實(shí)現(xiàn)了數(shù)據(jù)傳入與界面處理的分離 .
}
通過上面的演示做到了界面與數(shù)據(jù)的分離,回調(diào)函數(shù)分別扮演了不同角色,所以隨著處理問題的不同應(yīng)靈活應(yīng)用,但同樣因?yàn)樘幚頂?shù)據(jù)類不知道界面處理類或外部調(diào)用類的類型,而更無法靈活地處理界面的不同顯示方式。這方面還希望喜歡鉆研技術(shù)的朋友繼續(xù)研究。
界面處理類 CShowGUI,數(shù)據(jù)上傳類 CUploadData
class CUploadData
{
......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
int UploadFile(LPCTSTR lpFileNamePath,LPVOID lparam,SetUploadCaller Caller );
// 接受外界出入的參數(shù),主要是回調(diào)函數(shù)的地址通過參數(shù)Caller,
int Send(LPCTSTR lpServerIP, LPCTSTR lpServerPort, LPCTSTR UploadFilePath) ;
...... // 注意此時(shí)不在需要GetCurState 函數(shù)了 。
}
class CShowGUI: public CDialog
{
.......
typedef int(*SetUploadCaller)(int nCurData, int nInAll, void * pParam);
void SetCallBack(LPCTSTR strPath);
static int GetCurState(int nCurData, int nInAll, void * pParam) ;
CUploadData m_Uploa
d ; // 數(shù)據(jù)上傳類是界面顯示類的一個(gè)成員變量。
.......
}
void CShowGUI :: SetCallBack(LPCTSTR strPath)
{
CUploadData myUploadData ;
SetUploadCaller myCaller; // 聲明一個(gè)函數(shù)指針變量
myCaller = CurState ; // 取得界面處理函數(shù)的地址
myUploadData .UploadFile(strPath,this,myCaller); // 界面處理類的函數(shù)傳入,實(shí)現(xiàn)了數(shù)據(jù)傳入與界面處理的分離 .
}
通過上面的演示做到了界面與數(shù)據(jù)的分離,回調(diào)函數(shù)分別扮演了不同角色,所以隨著處理問題的不同應(yīng)靈活應(yīng)用,但同樣因?yàn)樘幚頂?shù)據(jù)類不知道界面處理類或外部調(diào)用類的類型,而更無法靈活地處理界面的不同顯示方式。這方面還希望喜歡鉆研技術(shù)的朋友繼續(xù)研究

