سؤال

عندما أقوم بتهيئة مربع حوار، أرغب في تحديد أحد أزرار الاختيار الموجودة في النموذج.لا أرى طريقة لربط متغير التحكم باستخدام معالج الفئة، كما تفعل عادةً مع CButtons وCComboBoxes وما إلى ذلك...

علاوة على ذلك، فهو لا يحب وجود فئة CRadioButton.

كيف يمكنني اختيار أحد أزرار الاختيار المتعددة؟

هل كانت مفيدة؟

المحلول

أزرار الاختيار وأزرار الاختيار هي مجرد أزرار.إستخدم CButton السيطرة والاستخدام GetCheck/SetCheck.

نصائح أخرى

يستخدم CWnd::CheckRadioButton لتعيين زر واحد في المجموعة و CWnd::GetCheckedRadioButton لاسترداد معرف الزر المحدد.تأكد من استدعاء هذه الأساليب على كائن الحوار الخاص بك، وليس أيًا من كائنات زر الاختيار.

بناءً على ما قاله موس، نجح ما يلي في تحقيق الحيلة:

CButton* pButton = (CButton*)GetDlgItem(IDC_RADIOBUTTON);
pButton->SetCheck(true);
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
  ...
  DDX_Radio(pDX, IDC_RADIO1, m_Radio);
  ...
}

ولكنه نفس الشيء الذي ينشئه المعالج

يمكنك استخدام هذه الخطوط الملاحية المنتظمة:

::SendMessage(GetDlgItem(IDC_RADIO1)->m_hWnd, BM_SETCHECK, BST_CHECKED, NULL);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top