Click here to Skip to main content
15,894,460 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
Questionwhy ( const char *ptr = string literal ) works but ( const string *ptr = string literal ) doesn't ? Pin
Tarun Jha3-Apr-18 7:53
Tarun Jha3-Apr-18 7:53 
AnswerRe: why ( const char *ptr = string literal ) works but ( const string *ptr = string literal ) doesn't ? Pin
Victor Nijegorodov3-Apr-18 9:03
Victor Nijegorodov3-Apr-18 9:03 
AnswerRe: why ( const char *ptr = string literal ) works but ( const string *ptr = string literal ) doesn't ? Pin
David Crow3-Apr-18 10:41
David Crow3-Apr-18 10:41 
AnswerRe: why ( const char *ptr = string literal ) works but ( const string *ptr = string literal ) doesn't ? Pin
leon de boer3-Apr-18 13:48
leon de boer3-Apr-18 13:48 
QuestionHelp compiling OpenCV Pin
_Flaviu2-Apr-18 23:25
_Flaviu2-Apr-18 23:25 
AnswerRe: Help compiling OpenCV Pin
Victor Nijegorodov3-Apr-18 2:04
Victor Nijegorodov3-Apr-18 2:04 
GeneralRe: Help compiling OpenCV Pin
_Flaviu3-Apr-18 2:08
_Flaviu3-Apr-18 2:08 
GeneralRe: Help compiling OpenCV Pin
_Flaviu3-Apr-18 2:08
_Flaviu3-Apr-18 2:08 
GeneralRe: Help compiling OpenCV Pin
Victor Nijegorodov3-Apr-18 4:08
Victor Nijegorodov3-Apr-18 4:08 
AnswerRe: Help compiling OpenCV Pin
Jochen Arndt3-Apr-18 23:02
professionalJochen Arndt3-Apr-18 23:02 
QuestionCreating a Simple Employee Database using inheritance in c++. Pin
Tarun Jha2-Apr-18 0:53
Tarun Jha2-Apr-18 0:53 
SuggestionRe: Creating a Simple Employee Database using inheritance in c++. Pin
Richard MacCutchan2-Apr-18 0:57
mveRichard MacCutchan2-Apr-18 0:57 
GeneralRe: Creating a Simple Employee Database using inheritance in c++. Pin
Tarun Jha2-Apr-18 0:59
Tarun Jha2-Apr-18 0:59 
GeneralRe: Creating a Simple Employee Database using inheritance in c++. Pin
Richard MacCutchan2-Apr-18 1:10
mveRichard MacCutchan2-Apr-18 1:10 
GeneralRe: Creating a Simple Employee Database using inheritance in c++. Pin
Tarun Jha2-Apr-18 2:32
Tarun Jha2-Apr-18 2:32 
AnswerRe: Creating a Simple Employee Database using inheritance in c++. Pin
Richard MacCutchan2-Apr-18 1:19
mveRichard MacCutchan2-Apr-18 1:19 
GeneralRe: Creating a Simple Employee Database using inheritance in c++. Pin
Tarun Jha2-Apr-18 1:19
Tarun Jha2-Apr-18 1:19 
GeneralRe: Creating a Simple Employee Database using inheritance in c++. Pin
Richard MacCutchan2-Apr-18 1:26
mveRichard MacCutchan2-Apr-18 1:26 
QuestionIs it possible to link a DLL in another DLL and call its functions? Pin
manoharbalu2-Apr-18 0:29
manoharbalu2-Apr-18 0:29 
AnswerRe: Is it possible to link a DLL in another DLL and call its functions? Pin
Richard MacCutchan2-Apr-18 0:59
mveRichard MacCutchan2-Apr-18 0:59 
QuestionMFC DDX_Radio causes debug assertion failure when DoDataExchange is called Pin
janaswamy uday30-Mar-18 2:34
janaswamy uday30-Mar-18 2:34 
AnswerRe: MFC DDX_Radio causes debug assertion failure when DoDataExchange is called Pin
Victor Nijegorodov30-Mar-18 3:34
Victor Nijegorodov30-Mar-18 3:34 
janaswamy uday wrote:
[Q114980: FIX: Disabled DDX Radio Button Causes Infinite Loop | KnowledgeBase Archive]
https://jeffpar.github.io/kbarchive/kb/114/Q114980/

Let me know if any solutions regarding this.

But it was very good written in the article you have mentioned!

Quote:
RESOLUTION


To work around this problem, do one of the following:
  • Arrange the group so that the first radio button is not disabled when any of
    the other controls in the group are enabled.
-or-
  • Call EnableWindow() to enable the radio button before DDX_Radio() is called
    [for example, in DoDataExchange()].
-or-
  • Write your own DDX_Radio() replacement, as shown in the sample code in the
    "MORE INFORMATION" section, below.

STATUS


Microsoft has confirmed this to be a problem in Microsoft Foundation Classes,
versions 2.0 and 2.5. This problem was corrected in MFC version 3.0

MORE INFORMATION


One solution is to write your own DDX_Radio() replacement, which uses
::GetWindow() to iterate through all the controls on the dialog box until it
encounters one with style "WS_GROUP" or a handle of "NULL". The following sample
code is a substitute for DDX_Radio():

Sample Code

//  DDX_MyRadio(), which is a modified DDX_Radio().
//
void AFXAPI DDX_MyRadio(CDataExchange* pDX, int nIDC, int& value)
    // must be first in a group of auto radio buttons
{
   HWND hWndCtrl = pDX->PrepareCtrl(nIDC);
   ASSERT(::GetWindowLong(hWndCtrl, GWL_STYLE) & WS_GROUP);
   ASSERT(::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0L) &
DLGC_RADIOBUTTON);
   if( pDX->m_bSaveAndValidate )
      value = -1;     // value if none found
   // walk all children in group
   int iButton = 0;
   do
   {
      if( ::SendMessage(hWndCtrl, WM_GETDLGCODE, 0, 0L) &
DLGC_RADIOBUTTON
)
      {
      // control in group is a radio button
         if( pDX->m_bSaveAndValidate )
         {
            if( ::SendMessage(hWndCtrl, BM_GETCHECK, 0, 0L) != 0 )
            {
               ASSERT(value == -1);    // only set once
               value = iButton;
            }
         }
         else
         {
         // select button
            ::SendMessage( hWndCtrl, BM_SETCHECK, (iButton == value), 0L
);
         }
         iButton++;
      }
      else
      {
         TRACE( "Warning: skipping non-radio button in group.\n" );
      }
      hWndCtrl = ::GetWindow( hWndCtrl, GW_HWNDNEXT );
   } while(hWndCtrl!=NULL &&
!(GetWindowLong(hWndCtrl,GWL_STYLE)&WS_GROUP));
}

Remember to replace the following lines in your CDialog::DoDataExchange():
//{{AFX_DATA_MAP(CMyDialog)
DDX_Radio(pDX, IDC_RADIO1, m_iRadio);
//}}AFX_DATA_MAP

with:
//{{AFX_DATA_MAP(CMyDialog)
DDX_MyRadio(pDX, IDC_RADIO1, m_iRadio);
//}}AFX_DATA_MAP


GeneralRe: MFC DDX_Radio causes debug assertion failure when DoDataExchange is called Pin
janaswamy uday30-Mar-18 4:37
janaswamy uday30-Mar-18 4:37 
GeneralRe: MFC DDX_Radio causes debug assertion failure when DoDataExchange is called Pin
Victor Nijegorodov30-Mar-18 6:29
Victor Nijegorodov30-Mar-18 6:29 
GeneralRe: MFC DDX_Radio causes debug assertion failure when DoDataExchange is called Pin
janaswamy uday30-Mar-18 7:42
janaswamy uday30-Mar-18 7:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.