程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 采用MFC編制MVC模式之球體演示程序

采用MFC編制MVC模式之球體演示程序

編輯:關於ASP.NET

在傳統面向過程的程序設計中,往往采用 Input-Processing-Output 模式,這“歸功”於 DOS 操作系統的單任務。當 Windows 圖形界面 OS 出現後,MVC(Model-View-Controller)模型更適合 Windows 圖形界面程序的設計,它將數據處理和數據顯示分離開,使維護,擴展系統更加靈活 。其中,View:負責 顯示數據,它從Model處獲得數據然後顯示。當然,一個Model會有用戶可從不同角度來觀察的多個View。Model:存儲數據以及對數據進行各種運算和處理 。Controller:負責接受用戶輸入,並且把用戶輸入轉換成對 Model 的操作。因此Controller 可能會修改 Model 的數據,當數據修改後,更新 View。其結構示意圖如下:

一直采用MFC編程的朋友可能不太熟悉它,這是因為MFC的文檔視圖結構就是基於MVC的高層結構,這蒙蔽了我們的雙眼。雖然MS替我們做了,我們還是有必要接觸它,以在SDK or 其他地方有的放矢。我做了一個球體演示的例子,其界面如下:

左側兩個表面積和體積Edit讓使用者從文本的角度精確地觀察,我們稱其為TextView。右側為從CStatic派生的CGraphicView,使得人們可直觀地觀察Sphere.對話窗口CMVCSphereDlg是控制器,來獲取用戶的鍵盤輸入(輸入半徑後回車)和在Static上的鼠標點擊與拖動(可動態調整球體半徑並實時反饋球體變化)而CSphere類是模型,存儲了球體半徑和計算表面積,計算體積等處理半徑數據的操作.

現在讓我們詳細看看代碼,來感受下Model,View,Controller之間如何關聯,如何協同工作的。

class CSphere 
{
public:
   ... ....
  //更新Graphic-VIEW
  BOOL UpdateGraphicView(HWND hWnd,const CRect &rect,BOOL bErase);
  //更新Text-VIEW
  void UpdateTextView();
  //外界Controller的接口:設置球體半徑
  void SetRadius(float r);
private:
  //球體半徑
  float m_fRadius;
  //計算球體表面積
  float CalculateArea(float radius);
  //計算球體體積
  float CSphere::CalculateVolumn(float radius);
};

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved