我把單檔案視窗分割成左右兩塊,左邊是CScrollView,用來繪圖。右邊是CFormView,用來控制。現在可以繪圖,按照圖層來保存和讀取。正常讀取的前提是點擊保存的檔案,就可以自動的打開程式,并顯示出之前保存的圖形。如果在視窗開啟的情況下加載保存的檔案,則會出現CFormView里面控制元件多了一倍,影像正常顯示,MFC報錯退出。
我是使用Doc里面的Serialize保存的,序列化圖形保存和加載。這種情況我覺得是MFC把左右兩個視圖所有的資料都保存了,加載的時候控制元件重復加載導致錯誤,我還是小白一個,希望大家幫幫忙,教我怎么解決。
uj5u.com熱心網友回復:


第一張是打開保存的檔案后顯示的,第二張是在空的視窗中,點擊
打開“保存的檔案”后出現的錯誤。
uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
謝謝趙4老師,但是我希望保存的時候只保存分割后的其中一個視窗的內容,而不是所有視窗的內容。uj5u.com熱心網友回復:
除錯一下看看哪里報錯按著你這個描述問題可能出在初始化的位置
你打開程式的時候應該已經初始化好了圖形界面了吧
再打開檔案的時候是不是又重新設定過導致句柄錯誤了
uj5u.com熱心網友回復:
在View類里看看InitlalUpdate函式里怎么寫的uj5u.com熱心網友回復:
Debug模式下,打開call stack看看函式呼叫堆疊,找到出錯的函式呼叫先~uj5u.com熱心網友回復:
11你還在uj5u.com熱心網友回復:
我重寫了filesave和fileopen,現在保存和讀取都沒問題了。但是有另外一個問題是我在View視圖內嵌了一個view,一個是背景,一個是畫布。軟體運行時鍵鼠的焦點不是在畫布上,好像是在背景view上。請問怎么解決,是用setfocus嗎,要寫在哪里。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/86898.html
標籤:基礎類
