gh0st远程控制——客户端界面编写(二)

news2024/9/25 19:23:32

● 补充小知识:枚举类型的使用

每个控件(比如列表)都对应一个自己的唯一的变量

使用枚举类型可以将变量名与编号进行绑定,以后程序需要扩展的时候,只需要在定义枚举变量的位置重新修改编号就可以了,这样全局的所有变量的编号就都跟着修改了

由于列表这个数据结构在本项目中十分重要,所有需要放在一个每一个文件都能访问到的文件当中,比如"pcb.h"

示例1:默认是0 1 2 3 4 5这样和数组一样递增的

enum Day {
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday
};

int main() {
    // 使用枚举类型
    Day today = Wednesday;

    // 输出枚举常量的值
    std::cout << "Today is: " << today << std::endl;

    return 0;
}

示例2:也可以是乱序使用的

enum Color {
    Red = 1,
    Green = 2,
    Blue = 6
};

6、为列表控件添加条目

写代码的时候找不到对话框,如何转到资源视图?

为列表控件添加初始化函数,如果代码都写在OnInitDlg()函数里面,显得太过于臃肿了,于是我们考虑在CPCRemoteDlg类里面添加一个成员函数initList()用来初始化列表

  

在initList()函数中实现为列表添加条目

// 初始化对话框中的列表
int CPCRemoteDlg::initList()
{
	// TODO: 在此处添加实现代码.

	//为Online_List添加条目
	for (int i = 0; i < ONLINELIST_LEN; i++) {
		m_CList_Online.InsertColumn(i, g_Column_Data_Onlie[i].title, LVCFMT_CENTER, g_Column_Data_Onlie[i].nWidth);
	}

	//为MessageList添加条目
	for (int i = 0; i < MESSAGELIST_LEN; i++) {
		m_CList_Message.InsertColumn(i, g_Column_Data_Message[i].title, LVCFMT_CENTER, g_Column_Data_Message[i].nWidth);
	}

	return 0;
}

数据结构的定义:

2个枚举类型的列表定义在"pcb.h"文件当中:

enum
{
	ONLINELIST_IP = 0,          //IP的列顺序
	ONLINELIST_ADDR,            //地址
	ONLINELIST_COMPUTER_NAME,   //计算机名/备注
	ONLINELIST_OS,              //操作系统
	ONLINELIST_CPU,             //CPU
	ONLINELIST_VIDEO,           //摄像头
	ONLINELIST_PING,            //PING
	ONLINELIST_LEN				//OnlineList的总长度
};

enum
{
	MESSAGELIST_TYPE,			//信息类型
	MESSAGELIST_TIME,			//时间
	MESSAGELIST_INFO,			//信息
	MESSAGELIST_LEN				//MessageList的总长度
};

列表项定义在PCRemoteDlg.cpp文件当中:

typedef struct
{
	char*   title;    //列表的名称
	int		nWidth;   //列表的宽度
}COLUMNSTRUCT;

COLUMNSTRUCT g_Column_Data_Onlie[] =
{
	{"IP",				148	},
	{"区域",			150	},
	{"计算机名/备注",	160	},
	{"操作系统",		128	},
	{"CPU",				80	},
	{"摄像头",			81	},
	{"PING",			81	}
};

COLUMNSTRUCT g_Column_Data_Message[] =
{
	{"信息类型",		148	},
	{"时间",			100	},
	{"信息内容",	    660	}
};

此时运行项目还是显示不出来条目,我们需要将2个列表的属性》视图:ICon 改为 Report:

然后运行起来就OK了:

注意:不要忘记在CPCRemoteDlg的initDlg函数里面调用😂😂😂

结果报C005错误

经排查是因为m_CList_Online错误地写成了m_CList_Message导致数组越界引发报错

修改为:

//为Online_List添加条目
	for (int i = 0; i < ONLINELIST_LEN; i++) {
		m_CList_Online.InsertColumn(i, g_Column_Data_Message[i].title, LVCFMT_CENTER, g_Column_Data_Message[i].nWidth);
	}

最终运行结果截图:

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

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

相关文章

Windows自带分屏使用-窗口贴靠

0.介绍 Windows电脑自带的分屏功能叫做“窗口贴靠”&#xff0c;可以让您同时查看和操作多个应用程序窗口&#xff0c;提高我们的工作效率在屏幕展示上,没有额外显示器的情况下,可以设置分屏来进行展示分屏的数量,目前为止,windows系统上分屏的数量最多为4个,win7,win10,win11…

DolphinDB 与盈米基金达成战略合作,打造领先的资管机构投顾解决方案

1月16日上午&#xff0c;DolphinDB 与盈米基金在上海签署战略合作协议&#xff0c;共同开启专业资管投顾投研合作新篇章。 DolphinDB 联合创始人、COO 初阳春与盈米基金副总裁、研究院院长杨媛春出席仪式&#xff0c;并代表双方完成签约。 打造市场领先的资管机构投顾服务 盈…

OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换

前言 在现代工业自动化领域&#xff0c;OPC UA&#xff08;开放性生产控制和统一架构&#xff09;是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用&#xff0c;帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…

【学习计划】裁员风波下的一点感悟

今天计划一点点~~ 裁员风波 年关将近&#xff0c;同公司不同中心的小伙伴被约谈了。其实是在 23 年的 11 月份就已经在谈了&#xff0c;但是因为当时她还没找到下家&#xff0c;并且觉得赔偿也没谈好&#xff0c;就一直往后延期了&#xff0c;最后决定今年的 4 月份合同到期再…

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

力扣211. 添加与搜索单词 - 数据结构设计

字典树 思路&#xff1a; 设计一棵字典树&#xff0c;每个节点存放单词的一个字符&#xff0c;节点放一个标记位&#xff0c;如果是单词结束则标记&#xff1b;字典树插入&#xff1a; 字典树默认有 26 个 slot 槽代表 a - z&#xff1b;遍历单词&#xff0c;如果字符对应槽存…

Spring Boot Aop 执行顺序

Spring Boot Aop 执行顺序 1. 概述 在 spring boot 项目中&#xff0c;使用 aop 增强&#xff0c;不仅可以很优雅地扩展功能&#xff0c;还可以让一写多用&#xff0c;避免写重复代码&#xff0c;例如&#xff1a;记录接口耗时&#xff0c;记录接口日志&#xff0c;接口权限&…

主动自动智能、全天在线值守!浪潮信息InService托维服务平台V2.0焕新升级

日前&#xff0c;浪潮信息发布了InService托维服务平台2.0版本&#xff0c;新增了自动化微码版本推荐、硬盘故障智能预测、服务报告自助订阅等功能模块。该平台对接入设备可7*24小时在线监测&#xff0c;量化评估设备状态&#xff0c;提前预警故障&#xff0c;实现主动式服务。…

手写Vue3源码

Vue3核心源码 B站视频地址&#xff1a;https://www.bilibili.com/video/BV1nW4y147Pd?p2&vd_source36bacfbaa95ea7a433650dab3f7fa0ae Monorepo介绍 Monorepo 是管理项目代码的一种方式&#xff0c;只在一个仓库中管理多个模块/包 一个仓库可以维护多个模块&#xff0c;…

书生·浦语大模型实战营第四次课堂笔记

先来看看参考作业 哈哈到这才想起来写笔记 倒回去看发现要求将不要葱姜蒜换成自己的名字和昵称&#xff01; 好好好我就是不配玩&#xff08;换成管理员也不行&#xff01;&#xff09; 诶怎么能进这个环境&#xff1f;要进双系统ubuntu&#xff1f; 现在看视频发现原来是…

Vcruntime140_1.dll丢失的错误提示怎么解决,关于Vcruntime140_1.dll文件

在使用电脑时你是否遇到过关于Vcruntime140_1.dll文件丢失的错误提示&#xff0c;出现这样的提示时是不是不知所措&#xff0c;今天就给大家讲解Vcruntime140_1.dll文件的一些相关介绍&#xff0c;希望能够帮助大家解决Vcruntime140_1.dll丢失的难题。 一.Vcruntime140_1.dll文…

档案数字化如何选择合适的扫描仪

选择合适的扫描仪是进行档案数字化的关键步骤。以下是一些选择合适扫描仪的要点&#xff1a; 1. 扫描速度&#xff1a;选择具有合适的扫描速度的扫描仪&#xff0c;以便能够快速处理大量的文件。 2. 扫描分辨率&#xff1a;扫描分辨率决定了扫描后图像的清晰度。对于大多数文档…

代码随想录二刷 | 二叉树 | 二叉搜索树的最近公共祖先

代码随想录二刷 &#xff5c; 二叉树 &#xff5c; 二叉搜索树的最近公共祖先 题目描述解题思路代码实现 题目描述 235.二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的…

Qt简单使用与初识

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

vector迭代器的失效

1.vector的底层 vector的底层就是由三个指针构成的 iterator _start 这个指针指向vector数据起始位置。 iterator _finish这个指针指向vector数据的结束位置。 iterator _end_of_shorage这个指针指向vector容量的位置。 2.迭代器失效的种类 2.1扩容引发的迭代器失效 例&…

深入Android S (12.0) 探索Framework之输入子系统InputReader的流程

Framework层之输入系统 第一篇 深入Android S (12.0) 探索Framework之输入系统IMS的构成与启动 第二篇 深入Android S (12.0) 探索Framework之输入子系统InputReader的流程 文章目录 Framework层之输入系统前言一、基础知识1、输入子系统2、INotify 与 Epoll2.1、INotify 机制…

redisson的延时队列机制简述

概述 业务中经常会遇到一些延迟执行的需求&#xff1b;通常想到的都是rabbitmq或者rocketmq的延迟消息&#xff1b; 但是系统中不一定集成了mq&#xff0c;但为了控制分布式下的并发&#xff0c;一般redis都是有集成的&#xff1b; redis的key过期监听那个时间不准确&#xff…

初识React,基础(1), 安装react,jsx文件,类组件和函数组件,css样式

第一部分:初识react react: 用于构建用户界面的 JavaScript 库全局安装,win r, 命令: npm install create-react-app -g3. 创建一个react应用, 这里我在vscode 里面创建, 创建之后,运行 create-react-app my-appcd my-app npm start 第二部分: redact 组件定义以及使用 rea…

视频增强修复Topaz Video AI

Topaz Video AI是一款强大的视频增强软件&#xff0c;利用人工智能技术对数千个视频进行训练&#xff0c;结合多个输入视频的帧信息来提高素材的分辨率。该软件可将视频的分辨率提高到最高8K&#xff0c;并保持真实的细节和运动一致性。同时&#xff0c;它还能自动修复视频中的…

NFS网络共享存储服务技术攻略

目录 一.NFS 1.定义 2.特点 3.原理 二.服务端NFS配置文件 1.主配置文件 2.文件格式 3.相关命令 三.实验&#xff1a;NFS共享存储服务配置 1.服务端安装nfs-utils和rpcbind软件包 2.服务端新建共享目录给权限 3.服务端修改配置文件/etc/exports 4.服务端关闭防火墙…