15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Application Persistance

Chris Eaton -- eatonc@srnet.com
Thursday, July 25, 1996

Environment: Windows NT 3.51 VC++ 4.1

I am trying to add Window size and location Persistance(Save and
Restore) from the Registry to an MDI application.

I have a CFrameWnd derived class that overrides ActivateFrame and
handles WM_DESTROY for doing the Read & Write ProfileStrings.

What is the preferred way to handle this for MDI?

Anyone know of a good sample to look at?

thanks
chris



Roger Onslow -- Roger_Onslow@compsys.com.au
Monday, July 29, 1996

[Mini-digest: 3 responses]

>I am trying to add Window size and location Persistance(Save and
>Restore) from the Registry to an MDI application.

If you have MSDN (or access to MSJ issues) look at articles 
 C/C++ Q&A December 1995 (Number 12)
and an update on this in
 C/C++ Q&A March 1996 (Number 3)
Which show how to save/resorce child window size and position in an MDI app
(don't forget to read the update at the end of the march edition)

-----From: "Dean Grimm" 

The following works for me:



CMainFrame::CMainFrame()
{	
	m_bStartup=TRUE;
}

void CMainFrame::ActivateFrame(int nCmdShow) 
{
	if (!m_bStartup)
	{
		CMDIFrameWnd::ActivateFrame(nCmdShow);
		return;
	}

	m_bStartup = FALSE;

	WINDOWPLACEMENT wp;
	GetWindowPlacement(&wp);
        // read position from registry into wp.rcNormalPosition
        .
        .
	wp.showCmd = nCmdShow;
	SetWindowPlacement(&wp);
}


void CMainFrame::OnClose() 
{
	WINDOWPLACEMENT wp;
	GetWindowPlacement(&wp);
	// write wp.rcNormalPosition to registry
        .
        .
	CMDIFrameWnd::OnClose();
}


BOOL CDppApp::InitInstance()
{
        .
        .
	if (!ProcessShellCommand(cmdInfo))
		return FALSE;

	pMainFrame->ShowWindow(SW_HIDE);
	pMainFrame->ActivateFrame(m_nCmdShow);
        return TRUE;
}

Hope this helps,
Dean
==========================================================
Dean Grimm           Software Engineer / Cortron corp.

-----From: Alexandre de Brito Nobre 

The book "Inside Visual C++", by David J. Kruglinski (Microsoft Press) 
has an excelent (and easy) example to do what you want.




| Вернуться в корень Архива |