+bool wxCheckBox::OS2Command( WXUINT WXUNUSED(uParam),
+                             WXWORD WXUNUSED(wId) )
+{
+    wxCommandEvent rEvent( wxEVT_COMMAND_CHECKBOX_CLICKED, m_windowId );
+    rEvent.SetInt(GetValue());
+    rEvent.SetEventObject(this);
+    ProcessCommand(rEvent);
+    return true;
+} // end of wxCheckBox::OS2Command
+
+bool wxCheckBox::Create(wxWindow* pParent,
+                        wxWindowID vId,
+                        const wxString& rsLabel,
+                        const wxPoint& rPos,
+                        const wxSize& rSize,
+                        long lStyle,
+                        const wxValidator& rValidator,
+                        const wxString& rsName )
+{
+    if (!CreateControl( pParent
+                       ,vId
+                       ,rPos
+                       ,rSize
+                       ,lStyle
+                       ,rValidator
+                       ,rsName
+                      ))
+        return false;
+
+
+    long osStyle = BS_AUTOCHECKBOX | WS_TABSTOP | WS_VISIBLE;
+
+    bool bOk = OS2CreateControl( wxT("BUTTON")
+                           ,osStyle
+                           ,rPos
+                           ,rSize
+                           ,rsLabel
+                           ,0
+                          );
+    m_backgroundColour = pParent->GetBackgroundColour();
+
+    LONG lColor = (LONG)m_backgroundColour.GetPixel();
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BACKGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    wxAssociateWinWithHandle(m_hWnd, this);
+    return bOk;
+} // end of wxCheckBox::Create
+
+void wxCheckBox::SetLabel( const wxString& rsLabel )