首页 > 学院 > 开发设计 > 正文

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

2019-11-06 07:10:12
字体:
来源:转载
供稿:网友

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的一些基本功能,没有做太多详细的说明,比如控件绑定的变量名等并没有做说明!如有错误,请批评指正!


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表