1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
// **************************************************************************************
// File: LeashFrame.cpp
// By: Arthur David Leather
// Created: 12/02/98
// Copyright @1998 Massachusetts Institute of Technology - All rights reserved.
// Description: CPP file for LeashFrame.h. Contains variables and functions
// for Leash
//
// History:
//
// MM/DD/YY Inits Description of Change
// 12/02/98 ADL Original
// **************************************************************************************
#include "stdafx.h"
#include "LeashFrame.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
///////////////////////////////////////////////////////////////
// CLeashFrame
const CRect CLeashFrame::s_rectDefault(0, 0, 740, 400); // static public (l,t,r,b)
const char CLeashFrame::s_profileHeading[] = "Window size";
const char CLeashFrame::s_profileRect[] = "Rect";
const char CLeashFrame::s_profileIcon[] = "icon";
const char CLeashFrame::s_profileMax[] = "max";
const char CLeashFrame::s_profileTool[] = "tool";
const char CLeashFrame::s_profileStatus[] = "status";
IMPLEMENT_DYNAMIC(CLeashFrame, CFrameWndEx)
BEGIN_MESSAGE_MAP(CLeashFrame, CFrameWndEx)
//{{AFX_MSG_MAP(CLeashFrame)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
///////////////////////////////////////////////////////////////
CLeashFrame::CLeashFrame()
{
m_bFirstTime = TRUE;
}
///////////////////////////////////////////////////////////////
CLeashFrame::~CLeashFrame()
{
}
///////////////////////////////////////////////////////////////
void CLeashFrame::OnDestroy()
{
CString strText;
BOOL bIconic, bMaximized;
WINDOWPLACEMENT wndpl;
wndpl.length = sizeof(WINDOWPLACEMENT);
// gets current window position and
// iconized/maximized status
BOOL bRet = GetWindowPlacement(&wndpl);
if (wndpl.showCmd == SW_SHOWNORMAL)
{
bIconic = FALSE;
bMaximized = FALSE;
}
else if (wndpl.showCmd == SW_SHOWMAXIMIZED)
{
bIconic = FALSE;
bMaximized = TRUE;
}
else if (wndpl.showCmd == SW_SHOWMINIMIZED)
{
bIconic = TRUE;
if (wndpl.flags)
{
bMaximized = TRUE;
}
else
{
bMaximized = FALSE;
}
}
strText.Format("%04d %04d %04d %04d",
wndpl.rcNormalPosition.left,
wndpl.rcNormalPosition.top,
wndpl.rcNormalPosition.right,
wndpl.rcNormalPosition.bottom);
AfxGetApp()->WriteProfileString(s_profileHeading,
s_profileRect, strText);
AfxGetApp()->WriteProfileInt(s_profileHeading,
s_profileIcon, bIconic);
AfxGetApp()->WriteProfileInt(s_profileHeading,
s_profileMax, bMaximized);
SaveBarState(AfxGetApp()->m_pszProfileName);
CFrameWndEx::OnDestroy();
}
///////////////////////////////////////////////////////////////
void CLeashFrame::ActivateFrame(int nCmdShow)
{
if (m_bFirstTime)
{
m_bFirstTime = FALSE;
}
CFrameWndEx::ActivateFrame(nCmdShow);
}
|