MFC - 常用基础控件

news/2024/9/23 3:10:31 标签: mfc, c++

前言

  • 各位师傅大家好,我是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获取当前索引
  • 获取索引 弹出信息
    画面演示:
    请添加图片描述

总结

  • 我们介绍了单选按钮、多选按钮、静态文本、组合框的基本使用

http://www.niftyadmin.cn/n/5671196.html

相关文章

视觉距离与轴距离的转换方法

1.找一个明显的参照物&#xff0c;用上方固定的相机拍一下。保存好图片 2.轴用定长距离如1mm移动一下。 3.再用上相机再取一张图。 4.最后用halcon 将两图叠加 显示 效果如下 从图上可以明显的看出有两个图&#xff0c;红色标识的地方。 这时可以用halcon的工具画一个长方形…

TikTok流量不佳:是网络环境选择不当还是其他原因?

TikTok&#xff0c;作为全球短视频社交平台的佼佼者&#xff0c;每天都有海量的内容被上传和分享。然而&#xff0c;很多用户和内容创作者发现&#xff0c;他们的TikTok视频流量并不理想。这引发了一个问题&#xff1a;TikTok流量不佳&#xff0c;是因为网络环境选择不当&#…

expressjs 和 Router 配置 POST 请求

在Express.js中&#xff0c;你可以使用Router来组织你的路由&#xff0c;使其更加模块化和易于管理。当你需要配置POST请求时&#xff0c;你可以在你的Router文件中定义它&#xff0c;并指定相应的处理函数。下面是一个简单的例子&#xff0c;展示了如何在Express.js中配置Rout…

网络层协议 —— IP协议

目录 0.前言 1.IP协议的格式 2.IP地址 2.1IP地址的划分 国际间IP地址的划分 公有IP 私有IP 特殊的IP地址 国内IP地址的划分 2.2IP地址不足问题 2.3IP地址的功能 2.4如何使用IP地址 2.5IP地址的构成 3.网段划分 以前的方案 现在的方案 4.认识宏观网络 5.路由 …

周记-2024年第38周9.16~9.22:自己负责的任务,要尽量早点开始

现在是周日晚上21:21&#xff0c;我开始写周总结&#xff0c;22:26写完&#xff0c;用时66分钟。 上周计划 李沐clip论文看懂&#xff0c;多模态串讲视频看完**&#xff08;clip没看&#xff0c;看了李沐精读经典论文&#xff0c;Alexnet&#xff0c;ResNet&#xff0c;Trans…

[数据结构]无头单向非循环链表的实现与应用

文章目录 一、引言二、线性表的基本概念1、线性表是什么2、链表与顺序表的区别3、无头单向非循环链表 三、无头单向非循环链表的实现1、结构体定义2、初始化3、销毁4、显示5、增删查改 四、分析无头单向非循环链表1、存储方式2、优点3、缺点 五、总结1、练习题2、源代码 一、引…

js笔记(二进制由0和1两个数字组成)

二进制由0和1两个数字组成 八进制&#xff1a;由0-7数字组成 十进制&#xff1a;0-9数字组成&#xff0c;不能以开头 十六进制是由0-9和A-F组成&#xff0c;为了与其他进制的数字区分&#xff0c;通常开头以0x作为标记表示十六进制 Boolean 将其他类型转换…