2012-11-17 36 views
0

我注意到在對話框程序中需要功能。例如,我可以點擊多個按鈕,這些按鈕需要以相同的方式更新其他控件。現在我只是在適當的地方重複相同的代碼。對話框程序中的「功能」

全局對話框「助手」是否可以解決這個問題?

+0

有關您正在編碼的框架的更多信息將有助於解答。一般來說:如果它是C,那麼是的...全球幫手功能將是一條路。但是當你標記這個C++時,通常會有一個表示對話框的類,而「輔助函數」只是該類的私有方法。 – HostileFork

+0

對不起,這是一個本機Windows C++程序,但我直接與Win32 API交互以創建對話框,控件等。我相信dialogproc需要是靜態的,所以我可以將它放在它自己的類中,並使用一些私有靜態成員函數。目前靜態dialogproc是在我的主要應用程序類中定義的。 – user987280

+0

我通常會建議使用一些抽象層([WTL](http://en.wikipedia.org/wiki/Windows_Template_Library),也許?)但是,很多這些C++橋做的是將對象指針填入窗口用'SetWindowLong()'和'GWL_USERDATA',然後用'GetWindowLong'在回調過程中將指針拉出......從存根(靜態方法或其它)快速轉換到它存儲的對象上的調用類方法HWND。 – HostileFork

回答

0

您可以將常用功能歸入單獨的類或模塊。讓你的對話框類從繼承的類繼承,或者調用獨立函數。

我把這個過程稱爲這個過程軟件演變:重構通用件分成兩個或多個軟件單元可以使用的單獨模塊。