【MFC】03.常用复杂控件的使用-笔记
热键:
对话框-类向导:初始化函数中,热键需要在最开始的时候就注册进去:
-
注册热键:
在这之前,先去定义一个宏,代表你这个快捷键。
参数:窗口句柄,热键编号(热键消息码),辅助键 #define HOTKEY_USER_MSG 12138 RegisterHotKey(m_hWnd,HOTKEY_USER_MSG,MOD_SHIFT,VK_F1);// -
相应消息:
类向导-添加消息处理:WM_HOTKY消息
switch(nHotKeyID){case HOTKEY_USER_MSG:{AfxMessageBox(L"HOTKEY");breake;} }
全局消息钩子:在所有页面上都可以使用该热键
IP控件(IP Address Control):
给空间添加变量m_IP
- 设置
BUYE cIPA,cIPB,cIPC,cIPD; //判断是否为空 if(m_IP。IsBlank()){AfxMessageBox(L"IP地址不能为空");return; }else{m_IP.GetAddress(cIPA,cIPB,cIPC,cIPD);CString csIP;csIP.FOrmat(L"%d.%d.%d.%d",cIPA,cIPB,cIPC,cIPD);AfxMessageBox(csIP); } - 清除:
m_IP.ClearAddress(); - 获取
char ip[] = "192.168.1.60"; DWORD dwIP = htonl(inet_addr(ip)); m_IP.SetAddress(dwIP);
树控件(Tree Control):
- 添加变量 m_Tree
- OnInitDialog:
HTREEITEM hRoot = m_Tree.InsertItem(L"ROOT",TVI_ROOT,TVI_LAST); HTREEITEM hSubRoot1 = m_Tree.InsertItem(L"SubToot1",hRoot,TVI_LAST); HTREEITEM hSubRoot2 = m_Tree.InsertItem(L"SubToot1",hRoot,TVI_LAST); HTREEITEM hSubRoot3 = m_Tree.InsertItem(L"SubToot1",hRoot,TVI_LAST); - 获取当前选中:
HTREEITEM hCurNode = m_Tree.GetSelectItem(); CString csTxt = m_Tree.GetItemText(hCurNode); AfxMessageBox(csText); CString csSetBuffer = L"fdksafd"; m_tree.SetItemText(hCurNode,csSetBuffer); - 删除选中
HTREEITEM hCurNode = m_Tree.GetSelectItem(); m_Tree.DeleteItem(hCurNode); - 全部删除
m_Tree.DeleteAllItems();
列表:
-
添加变量:m_FileList
-
OnInitDialog:
m_FileList.SetExtendedStyle(LVS_EX_GRIDLINES,LVS_EX_FULLROWSELECT); m_FileList.InsertColumn(0,L"Name",NULL,100); m_FileList.InsertColumn(1,L"Pach",NULL,100); m_FileList.InsertColumn(2,L"Title",NULL,100); //只有第一列是Insert m_FileList.InsertItem(0,L"WdIg",0); m_FIleList.SetItemText(0,1,L"Path"); m_FIleList.SetItemText(0,2,L"Title");CFileFied finder; DWORD nIdnex = 0; BOOL bRet = finder.FInderFile(L"路径"); while(bRet){bRet = finder.FindNextFileW();m_FileList.InsertItem(nIdnex,finder.GetFileName(),0);m_FIleList.SetItemText(nIdnex,finder.GetFilePath());m_FIleList.SetItemText(nIdnex,2,finder.GerFileTitle()); } -
插入右键菜单:
获取文本,删除一行,删除全部、
类向导-列表控件消息:NM_RCLICK:
POINT pt = { 0 };GetCursorPos(&pt);HMENU hMenu = LoadMenu((HINSTANCE)GetWindowLongPtr(m_hWnd, GWLP_HINSTANCE), MAKEINTRESOURCE(IDR_MENU1));HMENU hSubMenu = GetSubMenu(hMenu, NULL);TrackPopupMenu(hSubMenu, TPM_CENTERALIGN, pt.x, pt.y, 0, m_hWnd, NULL);删除一行:
//获取当前行数:int nPos = (int)m_List.GetFirstSelectedItemPosition();nPos -= 1;//删除当前行m_List.DeleteItem(nPos);删除全部:
m_FileList.DeleteAllItem();获取文本
int nPos = (int)m_List.GetFirstSelectedItemPosition(); nPos -= 1; CString csBuffer = m_List.GetItemText(nPos, 0); AfxMessageBox(csBuffer); m_FileList.SetItemText(nPos,0,L"WdIg");
附加库
Tab页控件(Tab Control):
添加变量:m_Tab
绑定对话框
对话框外观NONe类型,Style:Child,给每一个对话框都添加一个类
OnInitDialog:
m_Tab.InsertItem(0,L"page0");
m_Tab.InsertItem(0,L"page1");
m_Tab.InsertItem(0,L"page2");
主对话框.h包含三个页的头文件,并且在头文件中,初始化三个对象
CPAGE1 page1;
CPAGE2 page2;
CPAGE3 page3;
OnInitDialog:
page1.Create(IDD_DIALOG1,&m_Tab);
page2.Create(IDD_DIALOG2,&m_Tab);
page3.Create(IDD_DIALOG3,&m_Tab);//窗口移动:
CRect rs;
m_Tab.GetClientRect(rs);
rs.top+=20;
page1.MoveWindow(rs);
page2.MoveWindow(rs);
page3.MoveWindow(rs);page1.ShowWidnow(SW_SHOW);
这样添加之后呢,当我们点击切换页面的时候,不会切换页面,这是因为没有添加切换的机制:
在Tab控件上,添加事件处理程序,消息类型:TCN_SELECHANGE
int nCurSel = m_Tab.GetCurSel();switch (nCurSel) {case 0: {D1.ShowWindow(SW_SHOW);D2.ShowWindow(SW_HIDE);D3.ShowWindow(SW_HIDE);break;}case 1: {D2.ShowWindow(SW_SHOW);D1.ShowWindow(SW_HIDE);D3.ShowWindow(SW_HIDE);break;}case 2: {D3.ShowWindow(SW_SHOW);D2.ShowWindow(SW_HIDE);D1.ShowWindow(SW_HIDE);break;}}
相关文章:
【MFC】03.常用复杂控件的使用-笔记
热键: 对话框-类向导:初始化函数中,热键需要在最开始的时候就注册进去: 注册热键: 在这之前,先去定义一个宏,代表你这个快捷键。 参数:窗口句柄,热键编号(热…...
Autosar诊断实战系列14-NRC优先级解析
本文框架 前言1. NRC分类2. NRC优先级判断2.1. NRC优先级判断逻辑介绍2.2 NRC测试注意事项前言 在本系列笔者将结合工作中对诊断实战部分的应用经验进一步介绍常用UDS服务的进一步探讨及开发中注意事项, Dem/Dcm/CanTp/Fim模块配置开发及注意事项,诊断与BswM/NvM关联模块的应…...
《向量数据库指南》——腾讯云向量数据库Tencent Cloud VectorDB产品特性,架构和应用场景
腾讯云向量数据库(Tencent Cloud VectorDB)是一款全托管的自研企业级分布式数据库服务,专用于存储、检索、分析多维向量数据。该数据库支持多种索引类型和相似度计算方法,单索引支持 10 亿级向量规模,可支持百万级 QPS 及毫秒级查询延迟。腾讯云向量数据库不仅能为大模型提…...
xcode 的app工程与ffmpeg 4.4版本的静态库联调,ffmpeg内下的断点无法暂停。
先阐述一下我的业务场景,我有一个iOS的app sdk项目,下面简称 A ,以及运行 A 的 app 项目,简称 A demo 。 引用关系为 A demo 引用了 A ,而 A 引用了 ffmpeg 的静态库(.a文件)。此时业务出现了 b…...
机器学习06 数据准备-(利用 scikit-learn基于Pima Indian数据集作 数据特征选定)
什么是数据特征选定? 数据特征选定(Feature Selection)是指从原始数据中选择最相关、最有用的特征,用于构建机器学习模型。特征选定是机器学习流程中非常重要的一步,它直接影响模型的性能和泛化能力。通过选择最重要的特征&#…...
机器学习-特征选择:如何使用Lassco回归精确选择最佳特征?
一、引言 特征选择在机器学习领域中扮演着至关重要的角色,它能够从原始数据中选择最具信息量的特征,提高模型性能、减少过拟合,并加快模型训练和预测的速度。在大规模数据集和高维数据中,特征选择尤为重要,因为不必要的…...
SpringBoot之Actuator基本使用
SpringBoot之Actuator基本使用 引入分类常用接口含义healthbeansconditionsheapdumpmappingsthreaddumploggersmetrics 引入 <!-- actuator start--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter…...
排序算法(一)
1.冒泡排序-Bubble Sort 1.算法原理 依次比较相邻的两个元素,若按照从小到大的顺序,则将相邻元素中较大的一个放在后面;然后对每一对相邻元素都做这种比较,序列的最后一个元素就是最大的数; 2.算法复杂度 时间复杂度…...
Centos虚拟机忘记密码-修改密码
1.重启系统 2.在这个选择界面,按e建 3.找到如下位置,插入init/bin/sh 4.填写完成后按Ctrlx引导启动 5.输入mount -o remount, rw / (注意空格) 6.重置密码 出现以下为重置成功 7.执行touch /.autorelabel 8.退出exec /sbin/init 9.输入你的新密…...
Shell 分析服务器日志常用命令
1、查看有多少个IP访问: 日志文件的第一列是IP地址 awk {print $1} log_file|sort|uniq|wc -l2、查看某一个页面被访问的次数: grep "/index.php" log_file | wc -l3、查看每一个IP访问了多少个页面: awk {S[$1]} END {for (a i…...
mysql8配置binlog日志skip-log-bin,开启、关闭binlog,清理binlog日志文件
1.概要说明 binlog 就是binary log,二进制日志文件,这个文件记录了MySQL所有的DML操作。通过binlog日志我们可以做数据恢复,增量备份,主主复制和主从复制等等。对于开发者可能对binlog并不怎么关注,但是对于运维或者架…...
机器学习:训练集与测试集分割train_test_split
1 引言 在使用机器学习训练模型算法的过程中,为提高模型的泛化能力、防止过拟合等目的,需要将整体数据划分为训练集和测试集两部分,训练集用于模型训练,测试集用于模型的验证。此时,使用train_test_split函数可便捷高…...
淘宝API开发(一)简单介绍淘宝API功能接口作用
前一阵子按照上级指示,根据淘宝API开发符合自已应用的系统,比如批量上传,批量修改名称,价格等功能什么的,在此就将我的开发历程写一写,为自己前段时间的工作做个总结。 淘宝开发平台(淘宝网 - 淘ÿ…...
Redis相关面试题
Redis的使用场景 根据自己简历上的业务进行回答 缓存 穿透、击穿、雪崩、双写一致、持久化、数据过期、淘汰策略 分布式锁 setnx redisson 缓存穿透:查询一个不存在的数据,数据库查不到数据也不会直接写入缓存,就会导致每次请求都查询数据库…...
数据库简介
1、数据库安装: rpm (redhat package manager) 也是个包管理工具: rpm -ivh 安装 rpm -e 表示卸载,卸载的时候有可能出现依赖的问题,可以用 --nodeps 忽略依赖卸载。 rpm -qa 搜索系统中安装的rpm的应用。 如果使用离线包,安装顺序不要乱。 m…...
腾讯云国际轻量应用服务器怎么使用呢?
腾讯云国际轻量应用服务器怎么使用呢?下面一起来了解一下: 1. 熟悉轻量应用服务器基础知识 ①什么是轻量应用服务器 TencentCloud Lighthouse? ②轻量应用服务器与云服务器 CVM 的区别是什么? ③为什么选择轻量应用服务器…...
arm环境cloudstack在vpc下创建虚拟机失败
一、环境说明 操作系统:openEuler 22.03CPU:Kunpeng-920,arm v8cloudstack:4.18libvirtd:6.2.0 二、问题描述 在UI上创建VPC后,平台会同时创建一个virtual router,此时virtual router有两个网…...
Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)
目录 一、yum安装 第一步:下载 第二步:编辑Keepalived配置文件(第一台) 第三步:编辑Keepalived配置文件(第二台) 第四步:我们在本机利用cmd ping一下 一、yum安装 第一步&…...
centos7 ‘xxx‘ is not in the sudoers file...
如题 执行命令输入密码后时报错: [sudo] password for admin (我的账户)原因,当前用户还没有加入到root的配置文件中。 解决 vim打开配置文件,如下: #切换到root用户 su #编辑配置文件 vim /etc/sudoe…...
Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域
“Zebec Protocol 生态旨以 Web3 的方式建立全新的公平秩序,基于其流支付体系构建的薪酬支付板块,就是解决问题的一把利刃”...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
LOOI机器人的技术实现解析:从手势识别到边缘检测
LOOI机器人作为一款创新的AI硬件产品,通过将智能手机转变为具有情感交互能力的桌面机器人,展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家,我将全面解析LOOI的技术实现架构,特别是其手势识别、物体识别和环境…...
