+    for (int i = 0; i < nNum; i++)
+    {
+        m_pnRadioWidth[i] = m_pnRadioHeight[i] = -1;
+
+        long                        lStyleBtn = BS_AUTORADIOBUTTON | WS_TABSTOP | WS_VISIBLE;
+        int                         nNewId = NewControlId();
+
+        if (i == 0 && lStyle == 0)
+            lStyleBtn |= WS_GROUP;
+
+        HWND                        hWndBtn = (WXHWND)::WinCreateWindow ( GetHwndOf(pParent)
+                                                                         ,WC_BUTTON
+                                                                         ,asChoices[i]
+                                                                         ,lStyleBtn
+                                                                         ,0, 0, 0, 0
+                                                                         ,GetWinHwnd(pParent)
+                                                                         ,HWND_TOP
+                                                                         ,(HMENU)nNewId
+                                                                         ,NULL
+                                                                         ,NULL
+                                                                        );
+        lColor = (LONG)vColour.GetPixel();
+        ::WinSetPresParam( hWndBtn
+                          ,PP_FOREGROUNDCOLOR
+                          ,sizeof(LONG)
+                          ,(PVOID)&lColor
+                         );
+        lColor = (LONG)m_backgroundColour.GetPixel();
+
+        ::WinSetPresParam( hWndBtn
+                          ,PP_BACKGROUNDCOLOR
+                          ,sizeof(LONG)
+                          ,(PVOID)&lColor
+                         );
+        if (!hWndBtn)
+        {
+            return false;
+        }
+        m_ahRadioButtons[i] = (WXHWND)hWndBtn;
+        SubclassRadioButton((WXHWND)hWndBtn);
+        wxAssociateWinWithHandle(hWndBtn, this);
+        wxOS2SetFont( hWndBtn
+                     ,*wxSMALL_FONT
+                    );
+        ::WinSetWindowULong(hWndBtn, QWL_USER, (ULONG)this);
+        m_aSubControls.Add(nNewId);
+    }
+
+    //
+    // Create a dummy radio control to end the group.
+    //
+    (void)::WinCreateWindow ( GetHwndOf(pParent)
+                             ,WC_BUTTON
+                             ,""
+                             ,WS_GROUP | BS_AUTORADIOBUTTON
+                             ,0, 0, 0, 0
+                             ,GetWinHwnd(pParent)
+                             ,HWND_TOP
+                             ,(HMENU)NewControlId()
+                             ,NULL
+                             ,NULL
+                            );
+    SetFont(*wxSMALL_FONT);
+    fnWndProcRadioBox = (WXFARPROC)::WinSubclassWindow( GetHwnd()
+                                                       ,(PFNWP)wxRadioBoxWndProc
+                                                      );
+    ::WinSetWindowULong(GetHwnd(), QWL_USER, (ULONG)this);
+    lColor = (LONG)vColour.GetPixel();
+    ::WinSetPresParam( m_hWnd
+                      ,PP_FOREGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BORDERDARKCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    lColor = (LONG)m_backgroundColour.GetPixel();
+
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BACKGROUNDCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    ::WinSetPresParam( m_hWnd
+                      ,PP_BORDERLIGHTCOLOR
+                      ,sizeof(LONG)
+                      ,(PVOID)&lColor
+                     );
+    SetXComp(0);
+    SetYComp(0);
+    SetSelection(0);
+    SetSize( rPos.x
+            ,rPos.y
+            ,rSize.x
+            ,rSize.y
+           );
+    return true;
+} // end of wxRadioBox::Create
+
+wxSize wxRadioBox::DoGetBestSize() const
+{
+    return (GetTotalButtonSize(GetMaxButtonSize()));
+} // end of WinGuiBase_CRadioBox::DoGetBestSize
+
+void wxRadioBox::DoSetSize(
+  int                               nX
+, int                               nY
+, int                               nWidth
+, int                               nHeight
+, int                               nSizeFlags
+)
+{
+    int                             nCurrentX;
+    int                             nCurrentY;
+    int                             nWidthOld;
+    int                             nHeightOld;
+    int                             nXx = nX;
+    int                             nYy = nY;
+#if RADIOBTN_PARENT_IS_RADIOBOX
+    int                             nXOffset = 0;
+    int                             nYOffset = 0;
+#else
+    int                             nXOffset = nXx;
+    int                             nYOffset = nYy;