日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

MFC SDI 中 通过注册表保存当前窗体的 显示状态位置

發(fā)布時(shí)間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MFC SDI 中 通过注册表保存当前窗体的 显示状态位置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

???

在 框架類(lèi)響應(yīng) WM_CLOSE消息的時(shí)候添加如下代碼

?


?HKEY? key;????????//用于接收注冊(cè)表項(xiàng)句柄
?WINDOWPLACEMENT? info;? //獲得窗體位置狀態(tài)信息
?GetWindowPlacement(&info);? //CWnd類(lèi)的函數(shù)獲取一個(gè)窗體的狀態(tài)信息
?if(ERROR_SUCCESS==????????????????????????? //調(diào)用??RegOpenKeyEx 打開(kāi)注冊(cè)表 返回key? 如果成功 返回? ERROR_SUCCESS?
??RegOpenKeyEx(
??HKEY_CURRENT_USER,?????????//要打開(kāi)的項(xiàng)的句柄? 具體看MSDN
??"Software\\WolfeLee\\SaveWinState\\Settings", //子項(xiàng)
??0,?? //保留0?

KEY_ALL_ACCESS,? //所有權(quán)限

&key))?? //返回子項(xiàng)句柄
?{??

??DWORD des;???? //用于接收返回信息 這里不用
??????? if(ERROR_SUCCESS==::RegCreateKeyEx (??? //如果注冊(cè)表創(chuàng)建成功 那么返回ERROR_SUCCESS
??HKEY_CURRENT_USER,??
??"Software\\WolfeLee\\SaveWinState\\Settings",????
??????? 0,
??"State",?? //類(lèi)型
??REG_OPTION_NON_VOLATILE,??//在windows重啟的時(shí)候?我們創(chuàng)建的注冊(cè)表 依然保存
??KEY_ALL_ACCESS,?? //所有權(quán)限
??NULL,?? //默認(rèn)安全結(jié)構(gòu)
??&key,? //用于接收HKEY
??&des))
??{?// 將窗口信息保存到注冊(cè)表中
???? ?RegSetValueEx(key, "WindowState", 0, REG_BINARY, (LPBYTE)&info, sizeof(WINDOWPLACEMENT));? //用二進(jìn)制的形式保存窗體信息
??????RegCloseKey(key);??// 關(guān)閉注冊(cè)表?
??}

?}

?

以上完成了 狀態(tài)的餓保存? 我們?nèi)绾卧趩?dòng)的時(shí)候加載注冊(cè)表信息? 在?? APP的? 初始化函數(shù)中 要在? m_pMainWnd->ShowWindow(SW_SHOW)? 之前獲取窗體信息

添加下面代碼

?

?

?

?

?///讀取注冊(cè)表

??? HKEY key;
?DWORD type,n;
?WINDOWPLACEMENT info;
??? if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_CURRENT_USER,???? //打開(kāi)先前創(chuàng)建注冊(cè)表? 如果沒(méi)有鍵值那么我們調(diào)用原來(lái)的設(shè)置
?????????? "Software\\WolfeLee\\SaveWinState\\Settings",
???? 0,
???? KEY_ALL_ACCESS,
???? &key))
?{
???????? RegQueryValueEx(key,?? //注冊(cè)表的句柄
??? "WindowState",?? //我們保存的鍵值的名字
??? 0,
??? &type,? //獲取類(lèi)型
??? (LPBYTE)&info,? //獲取 狀態(tài)信息
??? &n);

???????? this->m_pMainWnd->SetWindowPlacement(&info);? //設(shè)置?窗體位置信息
?}
?else
?m_pMainWnd->ShowWindow(SW_SHOW);
?m_pMainWnd->UpdateWindow();

?

以上完成了對(duì) 窗體狀態(tài)的保存

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/yuedongwei/archive/2011/08/04/4145646.html

總結(jié)

以上是生活随笔為你收集整理的MFC SDI 中 通过注册表保存当前窗体的 显示状态位置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。