MFC-三个基本控件EditControl、CheckBoxControl以及ComBoxControl

MFC中三个最基本的控件的介绍,它们分别是:EditControl、CheckBoxControl以及ComBoxControl。

1. EditControl

实现的效果如下所示:
这里写图片描述
关键代码如下:
点击统计按钮的代码

void CEditDemoDlg::OnBnClickedBtnCount()
{
    CString strInput;
    if (0 == GetDlgItemTextW(IDC_EDIT_INPUT, strInput))
    {
        SetDlgItemTextW(IDC_OUTPUT, L"获取统计字数失败!");
        return;
    }
    CString strOtput;
    strOtput.Format(L"%d", strInput.GetLength());
    SetDlgItemTextW(IDC_OUTPUT, strOtput);
}

2.CheckBoxControl

实现的效果如下所示:
这里写图片描述
关键代码
我们需要在对话框上面通过类向导添加一个WM_ERASEBKGND的消息,然后添加代码如下:

BOOL CCheckBoxDemoDlg::OnEraseBkgnd(CDC* pDC)
{
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    BOOL bRet = CDialogEx::OnEraseBkgnd(pDC);
    int nRed, nGreen, nBlue;
    nRed = m_checkRed.GetCheck() ? 255 : 0;
    nGreen = m_checkGreen.GetCheck() ? 255 : 0;
    nBlue = m_checkBlue.GetCheck() ? 255 : 0;

    COLORREF clrColor = RGB(nRed, nGreen, nBlue);

    CBrush brush;
    brush.CreateSolidBrush(clrColor);
    CBrush *pOldBrush = pDC->SelectObject(&brush);
    RECT rect = { 30, 5, 230, 205 };
    if (((CButton *)GetDlgItem(IDC_RADIO_RECT))->GetCheck())
    {
        pDC->Rectangle(&rect);
    }
    else
    {
        pDC->Ellipse(&rect);
    }

    return bRet;
}

下面的五个按钮双击之后,添加相同的一句代码即可:

void CCheckBoxDemoDlg::OnBnClickedCheckRed()
{
    Invalidate(TRUE);
}


void CCheckBoxDemoDlg::OnBnClickedCheckGreen()
{
    Invalidate(TRUE);
}


void CCheckBoxDemoDlg::OnBnClickedCheckBlue()
{
    Invalidate(TRUE);
}


void CCheckBoxDemoDlg::OnBnClickedRadioRect()
{
    Invalidate(TRUE);
}


void CCheckBoxDemoDlg::OnBnClickedRadioRound()
{
    Invalidate(TRUE);
}

ComBoxControl

实现的效果如下所示:
这里写图片描述

主要代码如下:

void CComboxDemoDlg::OnBnClickedBtnAdd()
{
    CString strInput;
    if (GetDlgItemTextW(IDC_EDIT_INPUT, strInput) != 0)
    {
        int nIndex= m_comboxDemo.AddString(strInput);
        m_comboxDemo.SetCurSel(nIndex);
        nIndex = m_listDemo.AddString(strInput);
        m_listDemo.SetCurSel(nIndex);
    }
}


void CComboxDemoDlg::OnBnClickedBtnDelete()
{
    int nIndex = m_comboxDemo.GetCurSel();

    if (-1 < nIndex)
    {
        m_comboxDemo.DeleteString(nIndex);
        if (nIndex <= m_comboxDemo.GetCount())
        {
            if (nIndex > 0)
            {
                m_comboxDemo.SetCurSel(nIndex-1);
            }
            else
            {
                m_comboxDemo.SetCurSel(0);
            }
        }

    }
    else
    {
        MessageBoxW(L"未选中待删除的项!");
    }
    nIndex = m_listDemo.GetCurSel();
    if (-1 < nIndex)
    {
        m_listDemo.DeleteString(nIndex);
        if (nIndex <= m_listDemo.GetCount())
        {
            if (nIndex > 0)
            {
                m_listDemo.SetCurSel(nIndex-1);
            }
            else
            {
                m_listDemo.SetCurSel(0);
            }
        }
    }
    else
    {
        MessageBoxW(L"未选中待删除的项!");
    }
}

本文主要是想说明MFC的一些基本功能,没有做太多详细的说明,比如控件绑定的变量名等并没有做说明!如有错误,请批评指正!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值