• 大小: 2.23MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-28
  • 语言: 其他
  • 标签:

资源简介

VC实现的通过写和读取注册表完成开启窗口大小为上次关闭时的大小和位置

资源截图

代码片段和文件信息

// MainFrm.cpp : implementation of the CMainframe class
//

#include “stdafx.h“
#include “RestoreWinPos.h“

#include “MainFrm.h“

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainframe

IMPLEMENT_DYNCREATE(CMainframe CframeWnd)

BEGIN_MESSAGE_MAP(CMainframe CframeWnd)
//{{AFX_MSG_MAP(CMainframe)
ON_WM_CREATE()
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
ID_SEPARATOR           // status line indicator
ID_INDICATOR_CAPS
ID_INDICATOR_NUM
ID_INDICATOR_SCRL
};

/////////////////////////////////////////////////////////////////////////////
// CMainframe construction/destruction

CMainframe::CMainframe()
{
// TODO: add member initialization code here

}

CMainframe::~CMainframe()
{
}

int CMainframe::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CframeWnd::OnCreate(lpCreateStruct) == -1)
return -1;

if (!m_wndToolBar.CreateEx(this TBstyle_FLAT WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINframe))
{
TRACE0(“Failed to create toolbar\n“);
return -1;      // fail to create
}

if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators
  sizeof(indicators)/sizeof(UINT)))
{
TRACE0(“Failed to create status bar\n“);
return -1;      // fail to create
}

// TODO: Delete these three lines if you don‘t want the toolbar to
//  be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);

return 0;
}

BOOL CMainframe::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CframeWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
//  the CREATESTRUCT cs
CWinApp* pApp = AfxGetApp();
    int s t b r l;
//假如从注册表中读出的数据不为空
    if ( -1 != (s = pApp->GetProfileInt(“Restoreframe“ “Status“-1)) &&
-1 != (t = pApp->GetProfileInt(“Restoreframe“ “Top“-1)) &&
-1 != (l = pApp->GetProfileInt(“Restoreframe“ “Left“-1)) &&
-1 != (b = pApp->GetProfileInt(“Restoreframe“ “Bottom“-1)) &&
-1 != (r = pApp->GetProfileInt(“Restoreframe“ “Right“-1))
) 
{

//恢复窗口状态
        pApp->m_nCmdShow = s;
//恢复窗口宽度和高度
        cs.cx = r - l;
        cs.cy = b - t;
}
return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainframe diagnostics

#ifdef _DEBUG
void CMainframe::AssertValid() const
{
CframeWnd::AssertValid();
}

void CMainframe::Dump(CDumpContext& dc) const
{
CframeWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainframe message handlers


void CMainframe::OnClose() 
{
// TODO: Add your message handler code here

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2010-04-01 16:23  实例255——使窗口开启时保持上次关闭时的大小\
     目录           0  2015-11-29 21:23  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\
     目录           0  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\
     文件       23447  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\MainFrm.obj
     文件      118961  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.exe
     文件      306520  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.ilk
     文件       24211  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.obj
     文件     5499588  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.pch
     文件      336896  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.pdb
     文件        7408  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPos.res
     文件       16008  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPosDoc.obj
     文件       22427  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\RestoreWinPosView.obj
     文件      106534  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\StdAfx.obj
     文件      205824  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\vc60.idb
     文件      364544  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Debug\vc60.pdb
     文件        3588  2008-05-06 16:54  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\MainFrm.cpp
     文件        1466  2008-05-06 16:53  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\MainFrm.h
     文件        4479  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\ReadMe.txt
     目录           0  2013-05-27 12:11  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\res\
     文件         501  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\Resource.h
     文件        4373  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.cpp
     文件        4702  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.dsp
     文件         549  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.dsw
     文件        1433  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.h
     文件       50176  2015-11-29 21:23  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.ncb
     文件       48640  2015-11-29 21:23  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.opt
     文件        2690  2015-11-29 21:03  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.plg
     文件       10651  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPos.rc
     文件        1882  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPosDoc.cpp
     文件        1552  2008-05-06 16:50  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPosDoc.h
     文件        2867  2008-05-06 16:56  实例255——使窗口开启时保持上次关闭时的大小\RestoreWinPos\RestoreWinPosView.cpp
............此处省略7个文件信息

评论

共有 条评论

相关资源