+    //
+    // All controls should have these styles (wxWindows creates all controls
+    // visible by default)
+    //
+    if (m_isShown )
+        dwStyle |= WS_VISIBLE;
+
+    wxWindow*                       pParent = GetParent();
+    PSZ                             zClass;
+
+    if (!pParent)
+        return FALSE;
+
+    if ((strcmp(zClassname, "COMBOBOX")) == 0)
+        zClass = WC_COMBOBOX;
+    else if ((strcmp(zClassname, "STATIC")) == 0)
+        zClass = WC_STATIC;
+    else if ((strcmp(zClassname, "BUTTON")) == 0)
+        zClass = WC_BUTTON;
+    else if ((strcmp(zClassname, "NOTEBOOK")) == 0)
+        zClass = WC_NOTEBOOK;
+    else if ((strcmp(zClassname, "CONTAINER")) == 0)
+        zClass = WC_CONTAINER;
+    dwStyle |= WS_VISIBLE;
+
+    m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle
+                                       ,(PSZ)zClass              // Window class
+                                       ,(PSZ)rsLabel.c_str()     // Initial Text
+                                       ,(ULONG)dwStyle           // Style flags
+                                       ,(LONG)0                  // X pos of origin
+                                       ,(LONG)0                  // Y pos of origin
+                                       ,(LONG)0                  // control width
+                                       ,(LONG)0                  // control height
+                                       ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent
+                                       ,HWND_TOP                 // initial z position
+                                       ,(ULONG)GetId()           // Window identifier
+                                       ,NULL                     // no control data
+                                       ,NULL                     // no Presentation parameters
+                                      );
+
+    if ( !m_hWnd )
+    {
+#ifdef __WXDEBUG__
+        wxLogError(wxT("Failed to create a control of class '%s'"), zClassname);
+#endif // DEBUG
+
+        return FALSE;
+    }
+    //
+    // Subclass again for purposes of dialog editing mode
+    //
+    SubclassWin(m_hWnd);
+
+    //
+    // Controls use the same font and colours as their parent dialog by default
+    //
+    InheritAttributes();
+    SetXComp(0);
+    SetYComp(0);
+    SetSize( rPos.x
+            ,rPos.y
+            ,rSize.x
+            ,rSize.y
+           );
+    return TRUE;
+} // end of wxControl::OS2CreateControl
+
+wxSize wxControl::DoGetBestSize() const
+{
+    return wxSize(DEFAULT_ITEM_WIDTH, DEFAULT_ITEM_HEIGHT);
+} // end of wxControl::DoGetBestSize
+
+bool wxControl::ProcessCommand(wxCommandEvent& event)
+{
+#if WXWIN_COMPATIBILITY
+    if ( m_callback )