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 HandleWindowPosChanging(void *lpPos);
|
||||
bool HandleCommand(WXWORD id, WXWORD cmd, WXHWND control);
|
||||
bool HandleGetMinMaxInfo(void *mmInfo);
|
||||
|
||||
virtual long MSWWindowProc(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 wxSize& size,
|
||||
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",
|
||||
wxDefaultPosition, wxDefaultSize,
|
||||
@ -345,7 +346,9 @@ void MyFrame::InitToolBar(wxToolBar* toolBar)
|
||||
// Define a constructor for my canvas
|
||||
MyCanvas::MyCanvas(wxWindow *parent, const wxPoint& pos, const wxSize& size)
|
||||
: wxScrolledWindow(parent, -1, pos, size,
|
||||
wxSUNKEN_BORDER|wxVSCROLL|wxHSCROLL)
|
||||
wxSUNKEN_BORDER |
|
||||
wxNO_FULL_REPAINT_ON_RESIZE |
|
||||
wxVSCROLL | wxHSCROLL)
|
||||
{
|
||||
SetBackgroundColour(wxColour("WHITE"));
|
||||
|
||||
@ -408,10 +411,14 @@ void MyCanvas::OnEvent(wxMouseEvent& event)
|
||||
MyChild::MyChild(wxMDIParentFrame *parent, const wxString& title,
|
||||
const wxPoint& pos, const wxSize& size,
|
||||
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;
|
||||
my_children.Append(this);
|
||||
|
||||
// this should work for MDI frames as well as for normal ones
|
||||
SetSizeHints(100, 100);
|
||||
}
|
||||
|
||||
MyChild::~MyChild()
|
||||
|
@ -873,10 +873,8 @@ long wxMDIChildFrame::MSWWindowProc(WXUINT message,
|
||||
break;
|
||||
|
||||
case WM_GETMINMAXINFO:
|
||||
// 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_min/max variables
|
||||
return MSWDefWindowProc(message, wParam, lParam);
|
||||
processed = HandleGetMinMaxInfo((MINMAXINFO *)lParam);
|
||||
break;
|
||||
|
||||
case WM_MDIACTIVATE:
|
||||
{
|
||||
@ -1040,6 +1038,33 @@ bool wxMDIChildFrame::HandleWindowPosChanging(void *pos)
|
||||
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
|
||||
// ---------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user