我正在一個簡單的MFC程序的變量,即由三個類(通過在Visual Studio嚮導自動生成的)的:訪問來自另一
- 甲
CWinApp
衍生物,MyWinApp
- 甲
CDocument
衍生物,MyDocument
- 甲
CView
衍生物,MyView
- 甲
CFrameWnd
衍生物稱爲CMainFrame
和最後一個對話框類,從CDialog
衍生命名
MyDialog
MyDialog
具有一個編輯框,其允許用戶輸入一個整數值。點擊OK
後,我想那個值(我們稱之爲s_value
)在繪圖算法中使用的功能MyView::OnDraw(CDC* pDC){...}
例如裏面,OnDraw()
函數看起來是這樣的:
{...
SetPixel(posX, posY, (s_value < 5) ? color1 : color2);
... }
不過,我可以不知道如何將位於MyDialog
類中的代表編輯框中的值的變量代入MyView
類的OnDraw
函數中的圖形公式中。
例如,如果我想從MyDialog
調用MyView
中的方法,我必須創建新對象,並且所有事情都會變得混亂。我有類似的問題與靜態變量。
請注意,我來自Java背景,所以我的C++有點模糊。如果這不是一個複雜的問題,我會提前道歉。
+1這是一個常用的方法來做到這一點。另一種MFC Doc/View「方法」是讓App本身充當理想主義的MVC控制器,在模型中設置成員(即Doc),並使視圖無效,就像這裏所做的那樣。 – WhozCraig
爲什麼我需要'm_StringDataMember'? – CodyBugstein
@Imray你需要存儲*值的地方*。文檔(在MFC中)是您通常存儲數據的地方,您的視圖是您顯示數據的地方(想法是您可能擁有同一數據的多個視圖 - 實際上,非平凡的MFC應用程序可以使用該視圖事實上廣泛)。 –