X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1e6feb95a79834836e88143b15d9f424ebe79621..d9e054bc6147fb286b6de2fcfe50e2ecf5649843:/src/msw/control.cpp diff --git a/src/msw/control.cpp b/src/msw/control.cpp index 75047d806d..5454e029f9 100644 --- a/src/msw/control.cpp +++ b/src/msw/control.cpp @@ -46,9 +46,6 @@ END_EVENT_TABLE() // Item members wxControl::wxControl() { - m_backgroundColour = *wxWHITE; - m_foregroundColour = *wxBLACK; - #if WXWIN_COMPATIBILITY m_callback = 0; #endif // WXWIN_COMPATIBILITY @@ -98,14 +95,18 @@ bool wxControl::MSWCreateControl(const wxChar *classname, // by default) style |= WS_CHILD | WS_VISIBLE; + int x = pos.x == -1 ? 0 : pos.x, + y = pos.y == -1 ? 0 : pos.y, + w = size.x == -1 ? 0 : size.x, + h = size.y == -1 ? 0 : size.y; + m_hWnd = (WXHWND)::CreateWindowEx ( exstyle, // extended style classname, // the kind of control to create label, // the window name style, // the window style - pos.x, pos.y, // the window position - size.x, size.y, // and size + x, y, w, h, // the window position and size GetHwndOf(GetParent()), // parent (HMENU)GetId(), // child id wxGetInstance(), // app instance @@ -128,12 +129,18 @@ bool wxControl::MSWCreateControl(const wxChar *classname, } #endif // wxUSE_CTL3D - // subclass again for purposes of dialog editing mode + // install wxWindows window proc for this window SubclassWin(m_hWnd); // controls use the same font and colours as their parent dialog by default InheritAttributes(); + // set the size now if no initial size specified + if ( w == 0 || h == 0 ) + { + SetBestSize(size); + } + return TRUE; } @@ -162,10 +169,10 @@ bool wxControl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result) { - wxCommandEvent event(wxEVT_NULL, m_windowId); wxEventType eventType = wxEVT_NULL; - NMHDR *hdr1 = (NMHDR*) lParam; - switch ( hdr1->code ) + + NMHDR *hdr = (NMHDR*) lParam; + switch ( hdr->code ) { case NM_CLICK: eventType = wxEVT_COMMAND_LEFT_CLICK; @@ -199,6 +206,7 @@ bool wxControl::MSWOnNotify(int idCtrl, return wxWindow::MSWOnNotify(idCtrl, lParam, result); } + wxCommandEvent event(wxEVT_NULL, m_windowId); event.SetEventType(eventType); event.SetEventObject(this);