MFC之对话框和控件

  • 复选框
  • 单选框
  • 分组框(Group  Box)
  • 示例:三原色画图

建立初始界面(单选框和复选框放在分组框中)

注意:单选按钮一定要是连续的tab键顺序

  • 将矩形Group属性置为True

  • 分别给几个按钮关联控件变量
  • 初始化对话框中添加代码
// TODO: 在此添加额外的初始化代码
	//参数分别为:初始按钮,结束按钮,默认选中按钮
	CheckRadioButton(IDC_RD_RECT,IDC_RD_ROUND,IDC_RD_ROUND);
  • 蓝色复选框右键添加事件处理程序

void CCMBDemoDlg::OnBnClickedChkBlue()
{
	// TODO: 在此添加控件通知处理程序代码
	//点击失效,重新绘制对话框
	Invalidate();
}
  • 失效以后就会重新绘制对话框,重写擦除背景色消息

BOOL CCMBDemoDlg::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	BOOL bRet = CDialogEx::OnEraseBkgnd(pDC);
	int nRed,nGreen,nBlue;
	//选中红色复选框
	nRed = m_chk_red.GetCheck() ? 255 : 0;
	//选中绿色复选框
	nGreen = m_chk_green.GetCheck() ? 255 : 0;
	//选中蓝色复选框
	nBlue = m_chk_blue.GetCheck() ? 255 : 0;

	//合成前景色
	COLORREF crFore = RGB(nRed,nGreen,nBlue);
	CBrush brush;
	//创建实心的刷子
	brush.CreateSolidBrush(crFore);

	//保存旧的刷子,最后还原
	CBrush *pOldBrush = pDC->SelectObject(&brush);

	//Rect(左上角x坐标 , 左上角y坐标,矩形的宽,矩形的高)
	RECT rc = {40,20,200,180};
	//选中矩形画矩形
	if(m_rd_rect.GetCheck()){
		pDC->Rectangle(&rc);
	}
	//选中圆形画圆形
	else {
		pDC->Ellipse(&rc);
	}

	//放回旧画刷
	pDC->SelectObject(pOldBrush);
	return bRet;
}
  • 其余选框均调用蓝色按钮点击事件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

coder_Alger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值