Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
103 lines (83 loc) · 2.76 KB

File metadata and controls

103 lines (83 loc) · 2.76 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
// ResizableFrame.cpp : implementation file
//
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (C) 2000-2002 by Paolo Messina
// (http://www.geocities.com/ppescher - ppescher@yahoo.com)
//
// The contents of this file are subject to the Artistic License (the "License").
// You may not use this file except in compliance with the License.
// You may obtain a copy of the License at:
// http://www.opensource.org/licenses/artistic-license.html
//
// If you find this code useful, credits would be nice!
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ResizableFrame.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CResizableFrame
IMPLEMENT_DYNCREATE(CResizableFrame, CFrameWnd)
CResizableFrame::CResizableFrame()
{
m_bEnableSaveRestore = FALSE;
}
CResizableFrame::~CResizableFrame()
{
}
BEGIN_MESSAGE_MAP(CResizableFrame, CFrameWnd)
//{{AFX_MSG_MAP(CResizableFrame)
ON_WM_GETMINMAXINFO()
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CResizableFrame message handlers
void CResizableFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
MinMaxInfo(lpMMI);
CView* pView = GetActiveView();
if (pView == NULL)
return;
// get the extra size from view to frame
CRect rectClient, rectWnd;
GetWindowRect(rectWnd);
RepositionBars(0, 0xFFFF, AFX_IDW_PANE_FIRST, reposQuery, rectClient);
CSize sizeExtra = rectWnd.Size() - rectClient.Size();
// ask the view for track size
MINMAXINFO mmiView = *lpMMI;
pView->SendMessage(WM_GETMINMAXINFO, 0, (LPARAM)&mmiView);
mmiView.ptMaxTrackSize = sizeExtra + mmiView.ptMaxTrackSize;
mmiView.ptMinTrackSize = sizeExtra + mmiView.ptMinTrackSize;
// min size is the largest
lpMMI->ptMinTrackSize.x = __max(lpMMI->ptMinTrackSize.x,
mmiView.ptMinTrackSize.x);
lpMMI->ptMinTrackSize.y = __max(lpMMI->ptMinTrackSize.y,
mmiView.ptMinTrackSize.y);
// max size is the shortest
lpMMI->ptMaxTrackSize.x = __min(lpMMI->ptMaxTrackSize.x,
mmiView.ptMaxTrackSize.x);
lpMMI->ptMaxTrackSize.y = __min(lpMMI->ptMaxTrackSize.y,
mmiView.ptMaxTrackSize.y);
}
// NOTE: this must be called after setting the layout
// to have the view and its controls displayed properly
BOOL CResizableFrame::EnableSaveRestore(LPCTSTR pszSection, BOOL bRectOnly)
{
m_sSection = pszSection;
m_bEnableSaveRestore = TRUE;
m_bRectOnly = bRectOnly;
// restore immediately
return LoadWindowRect(pszSection, bRectOnly);
}
void CResizableFrame::OnDestroy()
{
if (m_bEnableSaveRestore)
SaveWindowRect(m_sSection, m_bRectOnly);
CFrameWnd::OnDestroy();
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.