applied patch #428104 (SetSizeHints() for wxMDIChildFrame)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10598 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
6138e469c9
commit
3ebcfb769f
@ -159,6 +159,7 @@ public:
|
|||||||
bool HandleMDIActivate(long bActivate, WXHWND, WXHWND);
|
bool HandleMDIActivate(long bActivate, WXHWND, WXHWND);
|
||||||
bool HandleWindowPosChanging(void *lpPos);
|
bool HandleWindowPosChanging(void *lpPos);
|
||||||
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
|
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
|
||||||
|
bool HandleGetMinMaxInfo(void *mmInfo);
|
||||||
|
|
||||||
virtual long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
virtual long MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
virtual long MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
virtual long MSWDefWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
|
||||||
|
@ -163,7 +163,8 @@ MyFrame::MyFrame(wxWindow *parent,
|
|||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
const wxSize& size,
|
const wxSize& size,
|
||||||
const long style)
|
const long style)
|
||||||
: wxMDIParentFrame(parent, id, title, pos, size, style)
|
: wxMDIParentFrame(parent, id, title, pos, size,
|
||||||
|
style | wxNO_FULL_REPAINT_ON_RESIZE)
|
||||||
{
|
{
|
||||||
textWindow = new wxTextCtrl(this, -1, "A help window",
|
textWindow = new wxTextCtrl(this, -1, "A help window",
|
||||||
wxDefaultPosition, wxDefaultSize,
|
wxDefaultPosition, wxDefaultSize,
|
||||||
@ -345,7 +346,9 @@ void MyFrame::InitToolBar(wxToolBar* toolBar)
|
|||||||
// Define a constructor for my canvas
|
// Define a constructor for my canvas
|
||||||
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
|
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
|
||||||
: wxScrolledWindow(parent, -1, pos, size,
|
: wxScrolledWindow(parent, -1, pos, size,
|
||||||
wxSUNKEN_BORDER|wxVSCROLL|wxHSCROLL)
|
wxSUNKEN_BORDER |
|
||||||
|
wxNO_FULL_REPAINT_ON_RESIZE |
|
||||||
|
wxVSCROLL | wxHSCROLL)
|
||||||
{
|
{
|
||||||
SetBackgroundColour(wxColour("WHITE"));
|
SetBackgroundColour(wxColour("WHITE"));
|
||||||
|
|
||||||
@ -408,10 +411,14 @@ void MyCanvas::OnEvent(wxMouseEvent& event)
|
|||||||
MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title,
|
MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title,
|
||||||
const wxPoint& pos, const wxSize& size,
|
const wxPoint& pos, const wxSize& size,
|
||||||
const long style)
|
const long style)
|
||||||
: wxMDIChildFrame(parent, -1, title, pos, size, style)
|
: wxMDIChildFrame(parent, -1, title, pos, size,
|
||||||
|
style | wxNO_FULL_REPAINT_ON_RESIZE)
|
||||||
{
|
{
|
||||||
canvas = (MyCanvas *) NULL;
|
canvas = (MyCanvas *) NULL;
|
||||||
my_children.Append(this);
|
my_children.Append(this);
|
||||||
|
|
||||||
|
// this should work for MDI frames as well as for normal ones
|
||||||
|
SetSizeHints(100, 100);
|
||||||
}
|
}
|
||||||
|
|
||||||
MyChild::~MyChild()
|
MyChild::~MyChild()
|
||||||
|
@ -873,10 +873,8 @@ long wxMDIChildFrame::MSWWindowProc(WXUINT message,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_GETMINMAXINFO:
|
case WM_GETMINMAXINFO:
|
||||||
// let the default window proc calculate the size of MDI children
|
processed = HandleGetMinMaxInfo((MINMAXINFO *)lParam);
|
||||||
// frames because it is based on the size of the MDI client window,
|
break;
|
||||||
// not on the values specified in wxWindow m_min/max variables
|
|
||||||
return MSWDefWindowProc(message, wParam, lParam);
|
|
||||||
|
|
||||||
case WM_MDIACTIVATE:
|
case WM_MDIACTIVATE:
|
||||||
{
|
{
|
||||||
@ -1040,6 +1038,33 @@ bool wxMDIChildFrame::HandleWindowPosChanging(void *pos)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxMDIChildFrame::HandleGetMinMaxInfo(void *mmInfo)
|
||||||
|
{
|
||||||
|
MINMAXINFO *info = (MINMAXINFO *)mmInfo;
|
||||||
|
|
||||||
|
// let the default window proc calculate the size of MDI children
|
||||||
|
// frames because it is based on the size of the MDI client window,
|
||||||
|
// not on the values specified in wxWindow m_max variables
|
||||||
|
bool processed = MSWDefWindowProc(WM_GETMINMAXINFO, 0, (LPARAM)mmInfo);
|
||||||
|
|
||||||
|
// but allow GetSizeHints() to set the min size
|
||||||
|
if ( m_minWidth != -1 )
|
||||||
|
{
|
||||||
|
info->ptMinTrackSize.x = m_minWidth;
|
||||||
|
|
||||||
|
processed = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m_minHeight != -1 )
|
||||||
|
{
|
||||||
|
info->ptMinTrackSize.y = m_minHeight;
|
||||||
|
|
||||||
|
processed = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// MDI specific message translation/preprocessing
|
// MDI specific message translation/preprocessing
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user