我明白有一些函數可以很容易地編寫Windows註冊表,但是我發現,在使用嚮導創建的新MFC項目中,一些信息(如分隔欄位置,控件的可見性)會自動存儲(或者至少我沒有發現CWinApp ::在項目中寫入*調用)。由於我也有舊的項目沒有這種行爲,我需要弄清楚如何做到這一點沒有項目嚮導的幫助。請有人知道這是如何工作的?如何保存MFC應用程序的佈局設置?
1
A
回答
2
MFC控制狀態保存魔術發生在'新'MFC Feature Pack,特別是在SaveState
方法中,例如CMFCToolBar::SaveState。
要利用此優勢,您需要升級工具欄和菜單以使用較新的控件並將應用程序升級爲從CWinAppEx繼承。我建議您使用基於新MFC嚮導的應用程序作爲如何升級舊的MFC應用程序的指南。
大部分信息保存在CPane :: SaveState()中,因此如果你想保存某個組件的狀態,你需要使用派生自CPane的類。 (更多信息here是類層次結構)。
保存窗口狀態的過程是通過CFrameImpl :: OnClosingMainFrame()啓動的。該函數依次調用保存一些應用程序設置的CWinAppEx :: SaveState(),然後調用CMFCToolBar的所有實例(它們將自己添加到調用OnCreate的CMFCToolBars的全局列表中)。以類似的方式保存所有可停靠的窗格,但列表屬於您的主框架。然後保存主框架的位置和大小。 CViews和CFrameWnds不太受歡迎,因爲我發現並嘗試過,唯一保存的信息是可視性。
0
我在那個時候以前用過。如果我正確地提醒它,則應在調用基類方法之前將所需的信息保存在覆蓋的CWinApp::ExitInstance()
中,然後將其加載到CWinApp::InitInstance
中。一定要允許默認值,因爲在第一次運行時,不會加載任何內容,並且不要忘記調用(或複製)基類。
相關問題
- 1. 如何保存應用程序設置?
- 2. 如何通過MFC將應用程序設置保存在註冊表中?
- 3. 如何設置應用程序佈局使用的變量
- 4. 如何設置應用程序設置而不保存在c#
- 5. 何時保存Apple設置應用程序的設置?
- 6. 如何保存到MFC C++應用程序中的位圖?
- 7. 如何在主題中設置應用程序佈局屬性?
- 8. 如何設置計算器應用程序按鈕佈局
- 9. 應用程序設置保存
- 10. 保存應用程序設置vb2008
- 11. 應用程序設置不保存
- 12. 如何保存我的應用程序設置?
- 13. 應用程序的內存佈局
- 14. MFC對話框應用程序的佈局管理器
- 15. iPhone - 如何從應用程序保存用戶設置?
- 16. 如何保存配置佈局android
- 17. 如何設置佈局的佈局?
- 18. 如何存儲應用程序設置?
- 19. 如何保留引用程序集的應用程序設置?
- 20. 如何在MFC應用程序退出時設置Errorlevel
- 21. SCSF:保存和加載應用程序的佈局
- 22. 我的應用程序佈局不同於activity_main佈局設計
- 23. WinForms應用程序的佈局佈局/設計
- 24. 如何將應用程序設置保存到文件?
- 25. 如何在c#應用程序設置中保存byte []
- 26. 如何將ArrayList保存到應用程序設置中
- 27. Android Pocket應用程序設計佈局
- 28. 存儲應用程序全局設置的位置?
- 29. 如何保存Tlistview佈局
- 30. 訪問/設置iOS設置應用程序的全局設置
嗯,你是對的。王國的馬...這將能夠閱讀我的MFC源代碼。 – Pyjong
如果您想要一個程序來讀取/理解MFC源代碼,請嘗試類似Agent Ransack的代碼。 – snowdude
Nah我只是懶惰,我最終讀了它,但謝謝你:)我可以編輯你的答案,添加一些信息,我發現並標記它接受? – Pyjong