單選與多選控制元件的簡單應用
阿新 • • 發佈:2022-12-11
-
這裡不好理解的是選擇項分組,按
Ctrl+D
快捷鍵,先設定按鈕Tab順序,對編排介面的元素Tab順序,假Tab序號為1 ~ 3的分為一組,4 ~ 6分為一組,那麼設定序號1的選擇項屬性雜項->組 = True
,設定序號4的選擇項屬性雜項->組 = True
,這樣就可以進行分組了,各組選中項不互相干擾 -
選項分組是按照序號的順序以及(控制元件屬性
雜項->組
)進行分組的,例如Tab序號為3的屬性組
為True
,那麼Tab序號為3以及之後的控制元件直到下一個屬性組
為True
的之前一個控制元件為一組
-
建立頁面控制元件
-
在此Dlg中的MFC類中的
OnInitDialog()
BOOL CObjInfoDlg1::OnInitDialog()
{
CDialogExt::OnInitDialog();
// TODO: 在此新增額外的初始化
((CButton*)GetDlgItem(IDC_RADIO4))->SetCheck(BST_CHECKED);//程式啟動時預設為單選按鈕1選中
return TRUE; // return TRUE unless you set the focus to a control
// 異常: OCX 屬性頁應返回 FALSE
}
- 新增
獲取選中按鈕
按鈕的點選事件OnBnClickedButton2()
void CObjInfoDlg1::OnBnClickedButton2() { m_selInfo.SetWindowTextA(_T("")); // TODO: 在此新增控制元件通知處理程式程式碼 if (::SendMessage(::GetDlgItem(m_hWnd, IDC_RADIO1), BM_GETCHECK, NULL, NULL) == BST_CHECKED)//如果選擇了單選按鈕1 { MessageBox(_T("選擇了單選按鈕1!"), NULL, MB_ICONINFORMATION);//彈出提示 m_selInfo.SetWindowTextA(_T("選擇了單選按鈕1")); } else if (::SendMessage(::GetDlgItem(m_hWnd, IDC_RADIO4), BM_GETCHECK, NULL, NULL) == BST_CHECKED)//如果選擇了單選按鈕2 { MessageBox(_T("選擇了單選按鈕2!"), NULL, MB_ICONINFORMATION);//彈出提示 m_selInfo.SetWindowTextA(_T("選擇了單選按鈕2")); } else if (::SendMessage(::GetDlgItem(m_hWnd, IDC_RADIO5), BM_GETCHECK, NULL, NULL) == BST_CHECKED)//如果選擇了單選按鈕2 { MessageBox(_T("選擇了單選按鈕3!"), NULL, MB_ICONINFORMATION);//彈出提示 m_selInfo.SetWindowTextA(_T("選擇了單選按鈕3")); } if (::SendMessage(::GetDlgItem(m_hWnd, IDC_CHECK1), BM_GETCHECK, NULL, NULL) == BST_CHECKED) { MessageBox(_T("選擇了多選按鈕1!"), NULL, MB_ICONINFORMATION);//彈出提示 CString cs; m_selInfo.GetWindowTextA(cs); m_selInfo.SetWindowTextA(cs +_T("\n選擇了多選按鈕1")); } if (::SendMessage(::GetDlgItem(m_hWnd, IDC_CHECK2), BM_GETCHECK, NULL, NULL) == BST_CHECKED) { MessageBox(_T("選擇了多選按鈕2!"), NULL, MB_ICONINFORMATION);//彈出提示 CString cs; m_selInfo.GetWindowTextA(cs); m_selInfo.SetWindowTextA(cs + _T("\n選擇了多選按鈕2")); } if (::SendMessage(::GetDlgItem(m_hWnd, IDC_CHECK3), BM_GETCHECK, NULL, NULL) == BST_CHECKED) { MessageBox(_T("選擇了多選按鈕3!"), NULL, MB_ICONINFORMATION);//彈出提示 CString cs; m_selInfo.GetWindowTextA(cs); m_selInfo.SetWindowTextA(cs + _T("\n選擇了多選按鈕3")); } }