SetBackgroundColour(pParent->GetBackgroundColour()) ;
SetForegroundColour(pParent->GetForegroundColour()) ;
- if ( id == -1 )
+ if ( vId == -1 )
m_windowId = (int)NewControlId();
else
m_windowId = vId;
lSstyle |= DT_RIGHT;
else
lSstyle |= DT_LEFT;
+ //
+ // If the parent is a scrolled window the controls must
+ // have this style or they will overlap the scrollbars
+ //
+ if (pParent)
+ if (pParent->IsKindOf(CLASSINFO(wxScrolledWindow)) ||
+ pParent->IsKindOf(CLASSINFO(wxGenericScrolledWindow)))
+ lSstyle |= WS_CLIPSIBLINGS;
+
m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
,WC_STATIC // Window class
,(PSZ)rsLabel.c_str() // Initial Text
wxCHECK_MSG(m_hWnd, FALSE, wxT("Failed to create static ctrl"));
+ wxColour vColour;
+
+ vColour.Set(wxString("BLACK"));
+
+ LONG lColor = (LONG)vColour.GetPixel();
+
+ ::WinSetPresParam( m_hWnd
+ ,PP_FOREGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+ lColor = (LONG)m_backgroundColour.GetPixel();
+
+ ::WinSetPresParam( m_hWnd
+ ,PP_BACKGROUNDCOLOR
+ ,sizeof(LONG)
+ ,(PVOID)&lColor
+ );
+
SubclassWin(m_hWnd);
wxControl::SetFont(pParent->GetFont());
- SetSize(nX, nY, nWidth, nHeight);
- return FALSE;
+ SetSize( nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ );
+ return TRUE;
} // end of wxStaticText::Create
wxSize wxStaticText::DoGetBestSize() const
int nHeightLine = 0;
wxString sCurLine;
- for ( const wxChar *pc = sText; ; pc++ )
+ for (const wxChar *pc = sText; ; pc++)
{
if ( *pc == wxT('\n') || *pc == wxT('\0') )
{
);
} // end of wxStaticText::DoGetBestSize
-void wxStaticText::SetLabel(
- const wxString& rsLabel
+void wxStaticText::DoSetSize(
+ int nX
+, int nY
+, int nWidth
+, int nHeight
+, int nSizeFlags
)
{
- ::WinSetWindowText(GetHwnd(), rsLabel.c_str());
-
//
- // Adjust the size of the window to fit to the label unless autoresizing is
- // disabled
+ // We need to refresh the window after changing its size as the standard
+ // control doesn't always update itself properly.
//
- if (!(GetWindowStyle() & wxST_NO_AUTORESIZE))
- {
- DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
- }
- DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
-} // end of wxStaticText::SetLabel
+ wxStaticTextBase::DoSetSize( nX
+ ,nY
+ ,nWidth
+ ,nHeight
+ ,nSizeFlags
+ );
+ Refresh();
+} // end of wxStaticText::DoSetSize
bool wxStaticText::SetFont(
const wxFont& rFont
return bRet;
} // end of wxStaticText::SetFont
+void wxStaticText::SetLabel(
+ const wxString& rsLabel
+)
+{
+ ::WinSetWindowText(GetHwnd(), rsLabel.c_str());
+
+ //
+ // Adjust the size of the window to fit to the label unless autoresizing is
+ // disabled
+ //
+ if (!(GetWindowStyle() & wxST_NO_AUTORESIZE))
+ {
+ DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+ }
+ DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+} // end of wxStaticText::SetLabel
+
MRESULT wxStaticText::OS2WindowProc(
WXUINT uMsg
, WXWPARAM wParam