12 MFC常用控件(一)

news2024/10/5 8:24:11

文章目录

  • button 按钮
    • 设置默认按钮按下回车后会响应
    • 禁用
    • 开启禁用
    • 设置隐藏
    • 设置显示
    • 设置图片
    • 设置Icon
    • 设置光标
  • Cbutton 类
    • 创建按钮
    • 创建消息
    • 单选按钮
    • 多选按钮
  • 编辑框
  • 组合框
    • 下拉框操作
  • CListBox
    • 插入数据
    • 获取当前选中
  • CListCtrl
    • 插入数据
    • 设置表头
    • 修改
    • 删除

button 按钮

设置默认按钮按下回车后会响应

在这里插入图片描述

void CDemoDlg::OnBnClickedBtnTest()
{
	MessageBox(L"按下回车");
}

禁用

在这里插入图片描述

开启禁用

GetDlgItem(IDC_BTN_TEST)->EnableWindow(TRUE);

设置隐藏

在这里插入图片描述

设置显示

GetDlgItem(IDC_BTN_TEST)->ShowWindow(SW_SHOW);

设置图片

开启位图

在这里插入图片描述

放置BMP图片

在这里插入图片描述

选择Bitmap

在这里插入图片描述
在这里插入图片描述

在文件里选择所有文件导入图片

在这里插入图片描述

设置属性修改ID

在这里插入图片描述

  //加载图片
	CBitmap bmp;
	bmp.LoadBitmap(IDB_TEST);
	//获取图片大小
	BITMAP logBmp;
	bmp.GetBitmap(&logBmp);

	//获取按钮
	CButton* pTestBtn = (CButton*)GetDlgItem(IDC_BTN_TEST);
	pTestBtn->MoveWindow(0, 0, logBmp.bmWidth, logBmp.bmHeight);//将图片与按钮大小一致
	pTestBtn->SetBitmap(bmp);

在这里插入图片描述

设置Icon

在这里插入图片描述

    CButton* pTestBtn = (CButton*)GetDlgItem(IDC_BTN_TEST);

	pTestBtn->SetIcon(m_hIcon);

在这里插入图片描述

设置光标

在这里插入图片描述

//设置光标
BOOL CDemoDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
	if (pWnd->GetDlgCtrlID() == IDC_BTN_TEST)//获取窗口
	{
		HCURSOR hCursor = LoadCursor(NULL, IDC_CROSS);
		SetCursor(hCursor);
		return TRUE;
	}

	return CDialogEx::OnSetCursor(pWnd, nHitTest, message);
}

请添加图片描述

Cbutton 类

在这里插入图片描述

创建按钮

#define IDC_BTN_TEST2 1025
    CButton m_button;
	m_button.Create(L"自创button", WS_CHILD | WS_VISIBLE, CRect(100, 100, 200, 200), this, IDC_BTN_TEST2);

在这里插入图片描述

创建消息

在这里插入图片描述

消息映射

void CDemoDlg::OnBnClickedBtnTest2()
{
	MessageBox(L"Test2");
}

在这里插入图片描述

单选按钮

单选按钮选组长(必须)

在这里插入图片描述

CButton m_radio;
m_radio.Create(L"男", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, CRect(20, 20, 70, 50), this, 1234);
	m_radio.SetCheck(0);

在这里插入图片描述

多选按钮

    CButton m_radio;
    m_radio.Create(L"男", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON|BS_CHECKBOX, CRect(20, 20, 70, 50), this, 1234);
	m_radio.SetCheck(0);

编辑框

int CDemoEditDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialogEx::OnCreate(lpCreateStruct) == -1)
		return -1;

	//获取客户区大小
	CRect rect;
	GetClientRect(&rect);
	m_edit.Create(WS_CHILD | WS_VISIBLE |WS_VSCROLL| WS_BORDER | ES_WANTRETURN  | ES_MULTILINE | ES_LEFT | ES_AUTOVSCROLL, rect, this, IDC_TEST_EDIT);
	//m_edit.ModifyStyle(WS_);//移除风格

	return 0;
}
//滚动响应
void CDemoEditDlg::OnVscrollEdit1()
{
	//m_edit.ModifyStyle(0,WS_VSCROLL);
	//DWORD dwStyle = GetWindowLong(m_edit.m_hWnd, GWL_STYLE);//获取原来的风格
	//dwStyle = dwStyle | WS_VSCROLL;
	//SetWindowLong(m_edit.m_hWnd, GWL_STYLE, dwStyle);

	
}

组合框

写入数据,每个数据之间用封号隔开

在这里插入图片描述

在这里插入图片描述

    //插入数据
	CComboBox* m_pcombBox = (CComboBox*)GetDlgItem(IDC_COMBO2);//获取combBox
	m_pcombBox->AddString(L"中国");
	m_pcombBox->AddString(L"美国");
	m_pcombBox->AddString(L"日本");
	m_pcombBox->InsertString(1, L"印度");//设置插入位置
	m_pcombBox->SetCurSel(2);//设置当前所选

取消排序

在这里插入图片描述

组合框类型

在这里插入图片描述

下拉框操作

请添加图片描述

void CDemoEditDlg::OnBnClickedButton1()
{
	CComboBox* m_pcombBox = (CComboBox*)GetDlgItem(IDC_COMBO2);//获取combBox
	//m_pcombBox->DeleteString(0);//删除
	CString str;
	//m_pcombBox->GetLBText(2, str);//获取文本
	//MessageBox(str);
	m_pcombBox->GetWindowText(str);//获取顶层文本
	MessageBox(str);
}

CListBox

插入数据

	CListBox* listbox = (CListBox*)GetDlgItem(IDC_LIST1);
	listbox->InsertString(0, L"中国");
	listbox->InsertString(0, L"美国");
	listbox->InsertString(0, L"俄罗斯");

获取当前选中

请添加图片描述

void CDemoEditDlg::OnBnClickedButton2()
{
	CString str;
	CListBox* listbox = (CListBox*)GetDlgItem(IDC_LIST1);
	//listbox->GetSel(0);//返回选中的状态
	int nSel = listbox->GetCurSel();
	listbox->GetText(nSel,str);
	MessageBox(str);
}

CListCtrl

插入数据

	CListCtrl* listctrl= (CListCtrl*)GetDlgItem(IDC_LIST2);
	listctrl->InsertItem(0, L"中国");
	listctrl->InsertItem(0, L"美国");
	listctrl->InsertItem(0, L"俄罗斯");

在这里插入图片描述

改变样式风格

在这里插入图片描述

设置表头

在这里插入图片描述

总是选中

在这里插入图片描述

	CListCtrl* listctrl= (CListCtrl*)GetDlgItem(IDC_LIST2);

	listctrl->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置拓展风格,整行选,获得网格线
	listctrl->InsertColumn(0, L"国家", LVCFMT_LEFT,100);
	listctrl->InsertColumn(1, L"民族", LVCFMT_CENTER, 100);
	listctrl->InsertColumn(2, L"省份", LVCFMT_RIGHT, 100);

	listctrl->InsertItem(0, L"中国");
	listctrl->SetItemText(0, 1, L"汉");
	listctrl->SetItemText(0, 2, L"浙江");
	listctrl->InsertItem(0, L"美国");
	listctrl->InsertItem(0, L"俄罗斯");

在这里插入图片描述

修改

void CDemoEditDlg::OnBnClickedButton3()
{
	CListCtrl* listctrl = (CListCtrl*)GetDlgItem(IDC_LIST2);
	//获取数据信息
	int nCount = listctrl->GetItemCount();
	//获取选中的行数
	int nSel=listctrl->GetSelectionMark();

	if (nSel == -1)
	{
		MessageBox(L"没选中");
		return;
	}

	//获取选中的内容
	//CString str1=listctrl->GetItemText(nSel, 0);
	//MessageBox(str1);
	listctrl->SetItemText(nSel, 2, L"江西");//修改![请添加图片描述](https://img-blog.csdnimg.cn/36875e64c0074bf4b2b41295ce868c26.gif)

}

删除

void CDemoEditDlg::OnBnClickedButton4()
{
	CListCtrl* listctrl = (CListCtrl*)GetDlgItem(IDC_LIST2);
	//删除
	POSITION pos = listctrl->GetFirstSelectedItemPosition();
	int nSel = listctrl->GetNextSelectedItem(pos);
	listctrl->DeleteItem(nSel);//删除
}

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/699188.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

将 YAPF 设置为默认的 Python 代码格式化工具 (VS Code, PyCharm)

yapf 是一个 python 代码格式化工具, 和 black, autopep8, pycharm 自带的格式化功能相同用途. 使用 yapf 作为我的默认格式化工具, 出于以下考虑: 我和团队使用多种 ide, 而 pycharm 自带的格式化功能在其他 ide 上没法用. 所以我需要一个通用的格式化方案来保持代码风格的一…

Unity | HDRP高清渲染管线学习笔记:Rendering Debugger窗口

HDRP给我们提供了一套完整的可视化Debug工具,集成在Rendering Debugger窗口。通过顶部菜单Window→Analysis→Rendering Debugger可以打开窗口。Rendering Debugger窗口不仅仅可以在编辑模式下使用,也可以在真机上运行时使用。(要在真机上运行…

数据结构--栈(Stack)的基本概念

数据结构–栈(Stack)的基本概念 线性表是具有相同数据类型的n ( n ≥ 0 n\ge0 n≥0)个数据元素的有限序列,其中n为表长,当n 0时线性表是一个空表。若用L命名线性表,则其一般表示为: L ( a 1 , a 2 . . . , a i , a i 1 , . . …

JavaScript 手写代码 第七期(重写数组方法三) 用于遍历的方法

文章目录 1. 为什么要手写代码?2. 手写代码2.1 forEach2.1.1 基本使用2.1.2 手写实现 2.2 map2.2.1 基本使用2.2.2 手写实现 2.3 filter2.3.1 基本使用2.3.2 手写实现 2.4 every2.4.1 基本使用2.4.2 手写实现 2.5 some2.5.1 基本使用2.5.2 手写实现 2.6 reduce2.6.1…

大学实训报告范文6篇

大学实训报告范文篇一:js实训报告 一、简介: Web标准并不是一个单一的标准,而是一个系列的标准的集合。Web标准中具有代表性的几种语言有:_ML可扩展标记语言、_HTML可扩展超文本标记语言、CSS层叠样式表、DOM文档对象模型、Java…

助你丝滑过度到 Vue3 常用的组合式API ②④

作者 : SYFStrive 博客首页 : HomePage 📜: VUE3~TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 👉…

HOT25-环形链表

leetcode原题链接:环形链表 题目描述 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使用整数…

数据库分库分表(上)

数据库分库分表 1,概念 分库分表是一种数据库架构设计的方法,用于解决大规模数据存储和查询的性能问题。它将一个大型数据库拆分成多个小型数据库,每个数据库负责存储一部分数据,从而提高数据的读写效率和并发处理能力。 分库分…

MySQL数据库基础 17

第十七章 触发器 1. 触发器概述2. 触发器的创建2.1 创建触发器语法2.2 代码举例 3. 查看、删除触发器3.1 查看触发器3.2 删除触发器 4. 触发器的优缺点4.1 优点4.2 缺点4.3 注意点 在实际开发中,我们经常会遇到这样的情况:有 2 个或者多个相互关联的表&a…

虚幻引擎(UE5)-大世界分区WorldPartition教程(三)

文章目录 前言LevelInstance的使用1.ALevelInstance2.选择Actor创建关卡3.运行时加载LevelInstance 总结 上一篇:虚幻引擎(UE5)-大世界分区WorldPartition教程(二) 前言 在制作大关卡时,可能会遇到这样一种情况,就是关卡中的某些Actor会重复…

【每日一题】——Majority

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

A*算法学习笔记

1 算法思路 1、Dijkstra算法与A*算法 (1)Dijkstra算法(贪心策略 优先队列): 集合S:已确定的顶点集合,初始只含源点s。 集合T:尚未确定的顶点集合。 算法反复从集合T中选择当前到…

开闭架构

在《不过时的经典层架构》里,有朋友留言关于Manager和Engine的概念,虽然朋友留言把概念解释清楚了。为了避免其他人有同样的疑问,这里我还是再解释一下。 以上是经典的四层架构,在这个架构中,Manager和Engine(引擎)都是…

【liunx配置服务自启动】liunx系统设置net Core程序开机自启动服务 centos系统

liunx系统设置net Core程序开机自启动服务 系统版本:Centos7.9 我的程序部署到/www/wwwroot/AcmeBookStoreHttpApiHost.com/目录下, 程序名是Meowv.Blog.HttpApi.Hosting.dll 1.新建自启动配置文件 首先跳转到system目录下 cd /usr/lib/systemd/syste…

【.net core】yisha框架,实体不在同一项目下设置swagger接口及实体模型注释,授权鉴权

1.Startup.cs中ConfigureServices方法中添加: 授权鉴权内容 #region 授权鉴权//Bearer 的scheme定义var securityScheme new OpenApiSecurityScheme(){Description "使用JWT方案授权,请求时,在请求头部信息中加入: \"Authoriza…

分布式计算模型详解:MapReduce、数据流、P2P、RPC、Agent

前言 本文隶属于专栏《大数据理论体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据理论体系 思维导图 MapReduce MapReduce 是一种分布式计算模…

Tomcat与Undertow容器性能对比分析

👨‍🎓作者:bug菌 ✏️博客: CSDN、 掘金、 infoQ、 51CTO等 🎉简介:CSDN博客专家,C站历届博客之星Top50,掘金/InfoQ/51CTO等社区优质创作者,全网合计8w粉,对…

BufferedImage将图片切成圆形

原图 修改后 方法一 //文件路径 File imageFile new File(path); public BufferedImage changeImages(File imageFile) {BufferedImage avatarImage null;try {avatarImage ImageIO.read(imageFile); avatarImage scaleByPercentage(avatarImage, avatarImage.getWidth(…

LENOVO联想笔记本电脑ThinkBook 15 G2-ITL(20VE)原装出厂Windows10系统恢复原厂OEM设置预装系统

Lenovo联想笔记本电脑,ThinkBook 15 G2-ITL(20VE)出厂Windows10系统,出厂预装系统 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式:ISO 文件大小&#xf…

最优化--凸函数--拉格朗日乘子法

目录 凸函数 凸函数定义 凸函数的判定 性质特点 拉格朗日乘子法 基本思想 有约束最优化问题 拉格朗日乘子法 凸函数 凸函数(Convex Function)是定义在凸集上的实值函数,具有以下性质:对于任意两个定义域内的点&#xf…