1. 程式人生 > >恢復視窗上次關閉時的狀態

恢復視窗上次關閉時的狀態

這篇文章介紹了,如何在開啟視窗的時侯,恢復上次關閉時的狀態。總過程分以下幾步完成:

建一個MFC工程命名為 test.

一, 在T estApp InitInstance () 中使用 SetRegistryKey() 函式註冊一個登錄檔的K ey 。函式執行後傳入的 key 會在 HKEY_CURRENT_USER/Software/”yourkey”

二, 給視窗新增一個 WM_CLOSE 訊息處理函式。在O nClose() 函式中對視窗的狀態進行儲存。儲存的步驟有:1,呼叫 SaveBarState(sectionName),

         2,呼叫 GetWindowPlacement

取得視窗的位置,大小等資訊。

           3,設用 WriteProfileBinary() 將取得的資訊寫入登錄檔中。

三, 恢復過程:在 testApp InitInstance ()函式中打到 pMainFrame->ShowWindow(); 將其改成下的程式碼:

UINT size;

LPWINDOWPLACEMENT* ppWP;

&ppDat a,&size))

{

ppWP = (LPWINDOWPLACEMENT *)&ppData;

pMainFrame->SetWindowPlacement(*ppWP);

delete []*ppWP;

} else {

pMainFrame->ShowWindow(m_nCmdShow);

}

問題:

一,指標的比較:

  1 , LPBYTE * ppData;

if(GetProfileBinary(SETTINGS_KEY,WINDOWPLACEMENT_KEY,

&ppDat a,&size))

     呼叫時會報錯。

   

所以會報錯。

相關推薦

恢復視窗上次關閉狀態

這篇文章介紹了,如何在開啟視窗的時侯,恢復上次關閉時的狀態。總過程分以下幾步完成: 建一個MFC工程命名為 test. 一, 在T estApp 的 InitInstance () 中使用 SetRegistryKey() 函式註冊一個登錄檔的K ey 。函式執

vim開啟檔案,第一個字元或者上次關閉的位置變成了字元p

我使用SecureCRT登入Linux,在用vim開啟文字的時候,第一個字元或者是上次開啟的位置的字元會變成符號‘p’. 出現這種情況的原因是終端的相容問題,網上給出的解決方案是:只要在 ~/.bashrc 裡面加上 “export TERM=linux” 就

【git】將未提交的程式碼恢復上次commit的狀態

問題描述 昨天我把程式碼commit並push到了github上,然後做了一系列修改。現在我想把這一系列修改刪掉,即恢復到commit的狀態。 基本思路: 使用git diff 配合 git checkout – 檔名(帶路徑的)將每個改動檔案的恢復。 解決步驟 1.

【git學習】在CenterOS系統上恢復GitLab出現錯誤:tar: 由於前次錯誤,將以上次的錯誤狀態退出 unpacking backup failed

一、問題描述 今天在測試加密GitLab備份檔案之後,進行解密,然後再恢復GitLab的時候,恢復失敗,報瞭如下的錯誤: tar: db:無法 mkdir: 許可權不夠 tar: db:無法 mkdir: 許可權不夠 tar: db/database.sql.

JFrame視窗關閉 進行再次確認的實現

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

excel關閉不小心沒有儲存怎麼辦,如下方法可以恢復!!!

當時情況:點選了excel的關閉後,問是否需要儲存,當時一走神兒不小心點了個“否”,蒼天啊這不要了老命了,而且文件自動儲存時間好像一直也沒特意設定一下,結果在開啟時,得嘞,空空的文件紮了老鐵的心了,但是不要怕,下面是老鐵找回文件的方法!!!   步驟1:點選“工具” 步驟

視窗關閉觸發子視窗關閉事件 wpf使用者控制元件的關閉事件 wpf usercontrol 釋放觸發關閉事件

/// <summary> /// 關閉視窗事件 /// </summary> /// <param name="sender"></param> /// <

【SQLServer】【恢復掛起的解決方案】附加檔案時候的提示“無法重新生成日誌,原因是資料庫關閉存在開啟的事務/使用者,該資料庫沒有檢查點或者該資料庫是隻讀的。 ”【資料庫恢復

--dbcc checkdb用法(手工修復資料庫) --檢查資料庫完整性 --dbcc checkdb('資料庫名') --go --快速修復  --dbcc checkdb ('資料庫名', Repair_Fast) --go --重建索引並修復  --dbcc checkdb ('資料

視窗關閉顯示父視窗

最近初學WPF,想要在關閉子視窗是顯示之前隱藏的父視窗,這裡蒐集到一種簡單地方法: 在父視窗點選事件中新增: class xxx = new class(); xxx.closed += (s,j)

was啟動9080埠被佔用,如何關閉FIN_WAIT1狀態的連線

在重啟websphere7.0伺服器後,發現怎麼也啟不起來,提示9080端口占用,可是was的程序已不存在。 後用命令:netstat  -anp|grep 9080  發現有一個連線狀態為FIN_WAIT1,一直沒有釋放,百度了很多資料都沒有手動關閉這種連線的方法,只能重

IntelliJ Idea 2018 恢復重置安裝的初始狀態

對於新手來說 難免會遇到一些配置 和 設定的問題 甚至軟體崩潰 頭疼 各種問題讓我們是有去無回啊 每次出現怎樣的問題 很多夥伴會選擇重新安裝 但是重新安裝需要時間 今天 易君 給大家

Winform 當前視窗跳轉目標視窗關閉資源的釋放

Winform 當前視窗點選按鈕後,隱藏當前視窗,開啟新的視窗。 如在新的視窗關閉時,再次開啟可能會導致異常。所以要對其進行釋放。 private void button1_Click(objec

adobe pdf檔案每次開啟正好是上次關閉的頁面

每次觀看PDF文件的時候都是從上次關閉的地方開始閱讀。不同版本略有區別。請針對自己的版本嘗試調整。 方法1   先進入Adobe Reader的主介面,然後在選單欄中選擇“編輯→首選項→啟動”,在右邊會看到一個“重新開啟文件到上次檢視的頁面”選項。。將“僅數字出版物”改為“所有檔案”即可(在Adobe

Jquery 瀏覽器頁面視窗重新整理或關閉,執行後臺方法(相容各主流瀏覽器)

//頁面載入時方法 $(document).ready(function () { //網頁關閉時執行的方法 $(window).bind("beforeunload", function () {

Mac中(parallels desktop)pd虛擬機關閉如何訪問硬盤?

medium 右擊 orderby attach doc 列表 安裝虛擬機 mount med Mac中(parallels desktop)pd虛擬機關閉時如何訪問硬盤?對於使用mac電腦還不是很熟練的小夥伴來講,安裝虛擬機是必備!parallels desktop就是一

如何監聽 App 被關閉 - iOS

保存 保存數據 答案 被調用 port eth stat this cas 在 Appdelegate 裏 applicationWillTerminate 是處理應用程序將終止的時候 按道理,我們在這個地方去寫我們 App 被關閉時的操作就行。 但是,我發現 App 關閉

PLSQL Developer中Window List 視窗關閉及鎖定辦法

在PLSQL Developer 中,發現那個Window List視窗每次啟動都需要手動拖拽到介面左下方,很不方便。通過  Tools-Preferences-User Interface-Options,在視窗中選中“Autosave Desktop”,然後拖拽Window Li

VUE.JS 視窗發生變化,獲取當前視窗的高度。

VUE.JS # 視窗發生變化時,獲取當前視窗的高度。 mounted () { const that = this; window.onresize = () => { return (() => { that.screenHeight = window

在Oracle關閉狀態下,如何修改引數檔案spfile

因為一些記憶體大小設定的問題,搞不定,一上火,我直接重啟了整臺伺服器。 登入之後,啟動資料庫,還是出錯: ORA-00844: Parameter not taking MEMORY_TARGET into account ORA-00851: SGA_MAX_SIZE 2147483648

vue 表格資料編輯,點選取消或者完成按鈕後,關閉編輯狀態沒有及時生效

點選編輯按鈕: 編輯狀態下,表格可以編輯。但是點選“確認”或者“取消”按鈕,列資料編輯狀態已經修改,但是檢視沒有改變。  頁面程式碼: 獲取當前行的index,並直接修改當前行用於判斷是否編輯狀態的資料為false(不可編輯);   根本原因是因為vue的檢視更新不及