+ //
+ // Also uncheck all the other items in this radio group
+ //
+ wxMenuItemList::compatibility_iterator node = rItems.Item(nStart);
+
+ for (int n = nStart; n <= nEnd && node; n++)
+ {
+ if (n == nPos)
+ {
+ ::WinSendMsg( hMenu
+ ,MM_SETITEMATTR
+ ,MPFROM2SHORT(n, TRUE)
+ ,MPFROM2SHORT(MIA_CHECKED, MIA_CHECKED)
+ );
+ }
+ if (n != nPos)
+ {
+ node->GetData()->m_isChecked = FALSE;
+ ::WinSendMsg( hMenu
+ ,MM_SETITEMATTR
+ ,MPFROM2SHORT(n, TRUE)
+ ,MPFROM2SHORT(MIA_CHECKED, FALSE)
+ );
+ }
+ node = node->GetNext();
+ }
+ }
+ else // check item
+ {
+ if (bCheck)
+ bOk = (bool)::WinSendMsg( hMenu
+ ,MM_SETITEMATTR
+ ,MPFROM2SHORT(GetRealId(), TRUE)
+ ,MPFROM2SHORT(MIA_CHECKED, MIA_CHECKED)
+ );
+ else
+ bOk = (bool)::WinSendMsg( hMenu
+ ,MM_SETITEMATTR
+ ,MPFROM2SHORT(GetRealId(), TRUE)
+ ,MPFROM2SHORT(MIA_CHECKED, FALSE)
+ );
+ }
+ if (!bOk)
+ {
+ wxLogLastError(wxT("CheckMenuItem"));