MFC - 常用基础控件
前言
- 各位师傅大家好,我是qmx_07,今天给大家讲解MFC中的基础控件
基础控件
单选按钮
绘图准备:
- 调整窗口大小,设置 radio button 单选按钮
- button 按钮
- 设置单选按钮变量分别为 m_BN1、 m_BN2、m_BN3
void CMFCApplication3Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//单选按钮
if (m_BN1.GetCheck())
{
MessageBox(L"1", L"提示选中", MB_OK);
}
else if (m_BN2.GetCheck())
{
MessageBox(L"2", L"提示选中", MB_OK);
}
else if (m_BN3.GetCheck())
{
MessageBox(L"3", L"提示选中", MB_OK);
}
}
- GetCheck()函数用于 获取点击状态
- 通过if选择的方式,进行获取
画图演示:
多选按钮
绘图准备:
- 调整窗口大小,设置Check Box多选按钮
- 设置Button按钮
- 设置变量名为m_CH1、m_CH2、m_CH3
void CMFCApplication1Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//多选按钮
if (m_CH1.GetCheck())
{
MessageBox(L"1", L"提示选中", MB_OK);
}
if (m_CH2.GetCheck())
{
MessageBox(L"2", L"提示选中", MB_OK);
}
if (m_CH3.GetCheck())
{
MessageBox(L"3", L"提示选中", MB_OK);
}
}
- 利用if 每一个点击按钮,都能被响应
画面演示:
静态文本
- 绘图准备:
- 调整窗口大小,设置 static text 静态文本
- 设置 button按钮
void CMFCApplication1Dlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
HWND hstatic = ::GetDlgItem(m_hWnd, IDC_STATIC);
::SetWindowText(hstatic, L"qmx_07");
}
- 获取静态文本控件ID,更改文本内容
画面演示:
组合框
- 绘图准备:
- 调整窗口大小,设置 Combo box 组合框
- 设置button 按钮
- 设置变量 m_Combo
右键 类向导 -> 虚函数 -> 选择 OnInitDialog()
BOOL CMFCApplication1Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 将“关于...”菜单项添加到系统菜单中。
// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != nullptr)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
m_Combo.AddString(L"北京");
m_Combo.AddString(L"上海");
m_Combo.AddString(L"广州");
m_Combo.AddString(L"深圳");
m_Combo.SetCurSel(0);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
- AddString()添加数据
- SetCurSel() 设置当前索引
- 在OnInitDialog 的最下方,添加组合框数据,设置当前位置为0索引
void CMFCApplication1Dlg::OnBnClickedButton4()
{
// TODO: 在此添加控件通知处理程序代码
int Cur = m_Combo.GetCurSel();
CString csTemp;
csTemp.Format(L"%d", Cur);
MessageBox(csTemp, L"标题");
}
- GetCurSel获取当前索引
- 获取索引 弹出信息
画面演示:
总结
- 我们介绍了单选按钮、多选按钮、静态文本、组合框的基本使用