X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c4a764c984ba8e482e5d808fd1c762aeb5b535a..683730003ba8f36fa07496b8f298d40733534aea:/src/msw/button.cpp diff --git a/src/msw/button.cpp b/src/msw/button.cpp index 849eef8dbd..80e8318503 100644 --- a/src/msw/button.cpp +++ b/src/msw/button.cpp @@ -22,6 +22,7 @@ #ifndef WX_PRECOMP #include "wx/button.h" +#include "wx/brush.h" #endif #include "wx/msw/private.h" @@ -56,8 +57,8 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, SetValidator(validator); parent->AddChild((wxButton *)this); - m_backgroundColour = parent->GetDefaultBackgroundColour() ; - m_foregroundColour = parent->GetDefaultForegroundColour() ; + m_backgroundColour = parent->GetBackgroundColour() ; + m_foregroundColour = parent->GetForegroundColour() ; m_windowStyle = (long&)style; @@ -71,31 +72,30 @@ bool wxButton::Create(wxWindow *parent, wxWindowID id, const wxString& label, else m_windowId = id; - DWORD exStyle = MakeExtendedStyle(m_windowStyle); - HWND wx_button = - CreateWindowEx(exStyle, "BUTTON", label, BS_PUSHBUTTON | WS_TABSTOP | WS_CHILD, - 0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId, - wxGetInstance(), NULL); - -#if CTL3D -// if (!(GetParent()->GetWindowStyleFlag() & wxUSER_COLOURS)) -// Ctl3dSubclassCtl(wx_button); -#endif - - m_hWnd = (WXHWND)wx_button; + m_hWnd = (WXHWND)CreateWindowEx + ( + MakeExtendedStyle(m_windowStyle), + "BUTTON", + label, + WS_VISIBLE | WS_TABSTOP | WS_CHILD, + 0, 0, 0, 0, + GetWinHwnd(parent), + (HMENU)m_windowId, + wxGetInstance(), + NULL + ); // Subclass again for purposes of dialog editing mode - SubclassWin((WXHWND)wx_button); + SubclassWin(m_hWnd); - SetFont(* parent->GetFont()); + SetFont(parent->GetFont()); SetSize(x, y, width, height); - ShowWindow(wx_button, SW_SHOW); return TRUE; } -void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) +void wxButton::DoSetSize(int x, int y, int width, int height, int sizeFlags) { int currentX, currentY; GetPosition(¤tX, ¤tY); @@ -117,7 +117,8 @@ void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) int cyf; char buf[300]; GetWindowText((HWND) GetHWND(), buf, 300); - GetTextExtent(buf, ¤t_width, &cyf,NULL,NULL,GetFont()); + GetTextExtent(buf, ¤t_width, &cyf,NULL,NULL, + & this->GetFont()); // If we're prepared to use the existing width, then... if (width == -1 && ((sizeFlags & wxSIZE_AUTO_WIDTH) != wxSIZE_AUTO_WIDTH)) @@ -126,7 +127,7 @@ void wxButton::SetSize(int x, int y, int width, int height, int sizeFlags) { int cx; int cy; - wxGetCharSize(GetHWND(), &cx, &cy,GetFont()); + wxGetCharSize(GetHWND(), &cx, &cy, & this->GetFont()); actualWidth = (int)(current_width + 3*cx) ; }