]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/radiobut.cpp
Fix pulsing of bitmaps in focused buttons under Windows 7.
[wxWidgets.git] / src / msw / radiobut.cpp
index bc0fa69092f0a28005eaf5b9ff6c7223aa73cd8f..6c8ed13480bc2be2400abf20d79ba4d3d977a3c3 100644 (file)
@@ -61,25 +61,10 @@ bool wxRadioButton::Create(wxWindow *parent,
     if ( !CreateControl(parent, id, pos, size, style, validator, name) )
         return false;
 
-    long msStyle = WS_TABSTOP;
-    if ( HasFlag(wxRB_GROUP) )
-        msStyle |= WS_GROUP;
+    WXDWORD exstyle = 0;
+    WXDWORD msStyle = MSWGetStyle(style, &exstyle);
 
-    // we use BS_RADIOBUTTON and not BS_AUTORADIOBUTTON because the use of the
-    // latter can easily result in the application entering an infinite loop
-    // inside IsDialogMessage()
-    //
-    // we used to use BS_RADIOBUTTON only for wxRB_SINGLE buttons but there
-    // doesn't seem to be any harm to always use it and it prevents some hangs,
-    // see #9786
-    msStyle |= BS_RADIOBUTTON;
-
-    if ( HasFlag(wxCLIP_SIBLINGS) )
-        msStyle |= WS_CLIPSIBLINGS;
-    if ( HasFlag(wxALIGN_RIGHT) )
-        msStyle |= BS_LEFTTEXT | BS_RIGHT;
-
-    if ( !MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0) )
+    if ( !MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, exstyle) )
         return false;
 
     // for compatibility with wxGTK, the first radio button in a group is
@@ -289,12 +274,27 @@ wxSize wxRadioButton::DoGetBestSize() const
 
 WXDWORD wxRadioButton::MSWGetStyle(long style, WXDWORD *exstyle) const
 {
-    WXDWORD styleMSW = wxControl::MSWGetStyle(style, exstyle);
+    WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle);
+
+    if ( HasFlag(wxRB_GROUP) )
+        msStyle |= WS_GROUP;
+
+    // we use BS_RADIOBUTTON and not BS_AUTORADIOBUTTON because the use of the
+    // latter can easily result in the application entering an infinite loop
+    // inside IsDialogMessage()
+    //
+    // we used to use BS_RADIOBUTTON only for wxRB_SINGLE buttons but there
+    // doesn't seem to be any harm to always use it and it prevents some hangs,
+    // see #9786
+    msStyle |= BS_RADIOBUTTON;
+
+    if ( style & wxCLIP_SIBLINGS )
+        msStyle |= WS_CLIPSIBLINGS;
+    if ( style & wxALIGN_RIGHT )
+        msStyle |= BS_LEFTTEXT | BS_RIGHT;
 
-    if ( style & wxRB_GROUP )
-        styleMSW |= WS_GROUP;
 
-    return styleMSW;
+    return msStyle;
 }
 
 #endif // wxUSE_RADIOBTN