69.搭建分析工具界面

news2024/9/24 7:19:43

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动!

内容参考于:易道云信息技术研究院

上一个内容:68.游戏分析工具设计以及更改辅助中存在的界面问题

以 68.游戏分析工具设计以及更改辅助中存在的界面问题 它的代码为基础进行修改

首先修改窗口的描述文字

添加分析工具的主界面

tree控件属性

list控件的属性

list控件添加变量

tree控件添加变量

分析工具主界面类的代码

CWndAddClass.h设置对象信息窗口的类里的代码

#pragma once


// CWndAddClass 对话框

class CWndAddClass : public CDialogEx
{
    DECLARE_DYNAMIC(CWndAddClass)

public:
    CWndAddClass(CWnd* pParent = nullptr);   // 标准构造函数
    virtual ~CWndAddClass();

// 对话框数据
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_ADDCLASS };
#endif

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

    DECLARE_MESSAGE_MAP()
};

CWndAddClass.cpp设置对象信息窗口的类里的代码

// CWndAddClass.cpp: 实现文件
//

#include "pch.h"
#include "GAMEHACKER2.h"
#include "CWndAddClass.h"
#include "afxdialogex.h"


// CWndAddClass 对话框

IMPLEMENT_DYNAMIC(CWndAddClass, CDialogEx)

CWndAddClass::CWndAddClass(CWnd* pParent /*=nullptr*/)
    : CDialogEx(IDD_ADDCLASS, pParent)
{

}

CWndAddClass::~CWndAddClass()
{
}

void CWndAddClass::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CWndAddClass, CDialogEx)
END_MESSAGE_MAP()


// CWndAddClass 消息处理程序

CwndRAN.cpp(分析工具主界面的类)文件里的内容

// CwndRAN.cpp: 实现文件
//

#include "pch.h"
#include "GAMEHACKER2.h"
#include "CwndRAN.h"
#include "afxdialogex.h"


// CwndRAN 对话框

IMPLEMENT_DYNAMIC(CwndRAN, CDialogEx)

CwndRAN::CwndRAN(CWnd* pParent /*=nullptr*/)
    : CDialogEx(IDD_PAGE_2, pParent)
{

}

CwndRAN::~CwndRAN()
{
}

void CwndRAN::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, IDC_TREE1, mTree);
    DDX_Control(pDX, IDC_LIST1, LstData);
}

void CwndRAN::OnOK()
{
}

void CwndRAN::OnCancel()
{
}


BEGIN_MESSAGE_MAP(CwndRAN, CDialogEx)
    ON_BN_CLICKED(IDC_BUTTON1, &CwndRAN::OnBnClickedButton1)
    ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, &CwndRAN::OnTvnSelchangedTree1)
    ON_NOTIFY(NM_RCLICK, IDC_TREE1, &CwndRAN::OnNMRClickTree1)
    ON_COMMAND(ID_32773, &CwndRAN::OnLoadGame)
END_MESSAGE_MAP()


// CwndRAN 消息处理程序


void CwndRAN::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码
    // 添加一个数据
    auto val = mTree.InsertItem(L"第一层", TVI_ROOT);
    // 给val添加一个子数据
    mTree.InsertItem(L"第二层", val);
    // 删除一个数据
    // mTree.DeleteItem(val);

    // 获取跟节点(第一行的第一层数据)
    // auto _root = mTree.GetRootItem();
    // 获取下一个跟节点
    // mTree.GetNextSiblingItem(_root);
    // 获取子数据
    // auto childData = mTree.GetChildItem(_root);
    // mTree.GetParentItem(childData);
}


void CwndRAN::OnTvnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
    LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
    // TODO: 在此添加控件通知处理程序代码
    *pResult = 0;
}

BOOL CwndRAN::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    LONG_PTR lStyle;
    // 得到窗口的样式,GWL_STYLE在GetWindowLongPtr说明中有
    lStyle = GetWindowLongPtr(LstData.m_hWnd, GWL_STYLE);
    lStyle |= LVS_REPORT;
    SetWindowLongPtr(LstData.m_hWnd, GWL_STYLE, lStyle);

    DWORD dStyle = LstData.GetExtendedStyle();
    dStyle |= LVS_EX_FULLROWSELECT;
    dStyle |= LVS_EX_GRIDLINES;
    LstData.SetExtendedStyle(dStyle);

    LstData.InsertColumn(0, L"内存地址", 0, 200);
    LstData.InsertColumn(1, L"偏移", 0, 200);
    LstData.InsertColumn(2, L"类型", 0, 200);
    LstData.InsertColumn(3, L"名称", 0, 200);
    LstData.InsertColumn(4, L"值", 0, 200);
    LstData.InsertColumn(5, L"注释", 0, 200);

    return TRUE;
}


void CwndRAN::OnNMRClickTree1(NMHDR* pNMHDR, LRESULT* pResult)
{
    // TODO: 在此添加控件通知处理程序代码
    *pResult = 0;
    // 获取最后一个消息发生时的鼠标位置
    DWORD dwPos = GetMessagePos();
    CPoint point(LOWORD(dwPos), HIWORD(dwPos));
    CMenu menu;
    menu.LoadMenuW(IDR_MENU1);
    CMenu* pop = menu.GetSubMenu(1);
    pop->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
}


void CwndRAN::OnLoadGame()
{
    if (wndSelProcess.DoModal() == IDOK) {

    }

    if (wndAddClass.DoModal() == IDOK) {

    }
}

CwndRAN.h(分析工具主界面的类)文件里的内容

#pragma once
#include "CWndAddClass.h"
#include "CWindProcess.h"

// CwndRAN 对话框

class CwndRAN : public CDialogEx
{
    DECLARE_DYNAMIC(CwndRAN)

public:
    CwndRAN(CWnd* pParent = nullptr);   // 标准构造函数
    virtual ~CwndRAN();

// 对话框数据
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_PAGE_2 };
#endif

protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

    DECLARE_MESSAGE_MAP()
private:
    void OnOK();
    void OnCancel();
public:
    CTreeCtrl mTree;
    CListCtrl LstData;
    CWindProcess wndSelProcess;
    CWndAddClass wndAddClass;

    afx_msg void OnBnClickedButton1();
    afx_msg void OnTvnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult);
    virtual BOOL OnInitDialog();
    afx_msg void OnNMRClickTree1(NMHDR* pNMHDR, LRESULT* pResult);
    afx_msg void OnLoadGame();
};

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

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

相关文章

【Dash】简单的直方图

一、Visualizing Data The Plotly graphing library has more than 50 chart types to choose from. In this example, we will make use of the histogram chart. # Import packages from dash import Dash, html, dash_table, dcc import pandas as pd import plotly.expre…

ASUS/华硕幻14 2022 GA402R系列 原厂win11系统 工厂文件 带F12 ASUS Recovery恢复

华硕工厂文件恢复系统 &#xff0c;安装结束后带隐藏分区&#xff0c;一键恢复&#xff0c;以及机器所有驱动软件。 系统版本&#xff1a;windows11 原厂系统下载网址&#xff1a;http://www.bioxt.cn 需准备一个20G以上u盘进行恢复 请注意&#xff1a;仅支持以上型号专用…

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件(qInstallMessageHandler回调函数)

【Qt开发】调试log日志QDebug重定向输出到textEdit等控件&#xff08;qInstallMessageHandler回调函数&#xff09; 文章目录 Log输出方式qInstallMessageHandler回调函数线程安全textEdit控件附录&#xff1a;C语言到C的入门知识点&#xff08;主要适用于C语言精通到Qt的C开发…

银行数据质量保障体系建设实践

引言 在数字化转型浪潮中&#xff0c;数据中台成为企业实现数据驱动决策的关键支撑。它不仅整合了企业内外部的数据资源&#xff0c;还通过数据共享与复用&#xff0c;提升了运营效率和业务创新能力。然而&#xff0c;随着数据量的激增和数据来源的多样化&#xff0c;如何确保…

SQL中的去重

SQL中的去重 1. Distinct去重 说明&#xff1a;DISTINCT 关键字用于返回唯一不同的值&#xff0c;一般放在查询语句中的第一个字段前使用。 DISTINCT会将NULL值也看做成一个不同的值。 DISTINCT去重 假如有一张员工表&#xff1a; 需要获取所有不重复的员工薪资和年龄的组合…

C:初识指针—学习笔记

目录 前言&#xff1a; 1、内存和地址 1.1 理解内存和地址 1.2 理解编址 2、指针变量和地址 2.1 取地址操作符&#xff1a;& 2.2 指针变量 2.3 如何拆解指针类型 2.4 解引用操作符&#xff08;*&#xff09; 2.5 指针变量的大小 3、指针变量类型的意义 3.1 指针…

U盘文件或目录损坏无法读取?详解两大恢复策略

在日常的数字生活中&#xff0c;U盘作为便携的数据存储工具&#xff0c;承载着我们的重要文件与回忆。然而&#xff0c;当U盘中的文件或目录突然变得无法读取时&#xff0c;这份便捷瞬间转化为困扰。U盘文件或目录的损坏&#xff0c;往往是由于多种因素共同作用的结果&#xff…

【CSDN平台BUG】markdown图片链接格式被手机端编辑器自动破坏

bug以及解决方法 现在是2024年8月&#xff0c;我打开csdn手机编辑器打算修改一下2023年12月的一篇文章&#xff0c;结果一进入编辑器&#xff0c;源码就变成了下面这个样子&#xff0c;我起初不以为意&#xff0c;就点击了发布&#xff0c;结果图片全部显示不出来了。 而当我修…

FPGA:串口通信发送模块

FPGA:串口通信发送模块 1、串口通信的概念及分类(1)串口通信概念(2)串口通信分类 2、UART协议(1)FPGA实现UART协议发送模块思路(2)Verilog设计文件a.波特率选择模块b.单个比特发送模块c.位状态计数器d.延时计数器e.数据保存寄存器f.位发送逻辑g.led翻转逻辑h.使能信号en_send逻…

鸿蒙系统开发【ASN.1密文转换】安全

ASN.1密文转换 介绍 本示例对使用kit.CryptoArchitectureKit加密后的密文格式进行转换。kit.CryptoArchitectureKit加密后的密文格式默认为以base64显示的ASN.1格式问题&#xff0c;通过对密文进行base64变换后得到字符数组&#xff0c;以16进制数字显示&#xff0c;再此基础…

看完这几本大模型书籍,你就是LLM大师,非常详细收藏我这一篇就够了

以下是几本关于大模型和人工智能领域的经典书籍&#xff0c;它们各自具有独特的特点和适用人群&#xff1a; 《深度学习》&#xff08;Deep Learning&#xff09; 作者&#xff1a;伊恩古德费洛&#xff08;Ian Goodfellow&#xff09;、约书亚本吉奥&#xff08;Yoshua Bengi…

刀具磨损预测工器具磨损预测-RIME-CNN-SVM霜冰算法优化-完整代码数据

直接看项目演示: 刀具磨损预测工器具磨损预测-RIME-CNN-SVM霜冰算法优化_哔哩哔哩_bilibili 效果演示: 代码: import numpy as np import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torch.utils.data import DataLo…

算法第十七天:leetcode242.有效的字母异位词

一、有效的字母异位词的题目描述与链接 242.有效的字母异位词如下表所示&#xff0c;您可以直接复制下面网址进入力扣学习&#xff0c;在观看下面的内容之前您一定要先做一遍哦&#xff0c;以便让你印象更加深刻&#xff01; https://leetcode.cn/problems/valid-anagram/desc…

curl wget介绍

0 Preface/Foreword 1 curl介绍 curl&#xff1a;transfer a URL synopsis&#xff1a; curl [options] [URL...] 描述&#xff1a; curl is a tool to transfer data from or to a server, using one of the supported protocols (DICT, FILE, HTTP, HTTPS, IMAP, FTP, FT…

【JavaEE初阶】懒汉模式与饿汉模式及指令重排序问题

目录 &#x1f4d5; 单例模式 &#x1f333; 饿汉模式 &#x1f6a9; 线程安全 &#x1f38d; 懒汉模式 &#x1f6a9; 懒汉模式-单线程版 &#x1f6a9; 懒汉模式-多线程版 &#x1f384; 指令重排序 &#x1f4d5; 单例模式 单例模式是一种经典的设计模式&#xff0c;…

Python | Leetcode Python题解之第312题戳气球

题目&#xff1a; 题解&#xff1a; class Solution:def maxCoins(self, nums: List[int]) -> int:n len(nums)rec [[0] * (n 2) for _ in range(n 2)]val [1] nums [1]for i in range(n - 1, -1, -1):for j in range(i 2, n 2):for k in range(i 1, j):total v…

文档编辑协作神器,全方位解决方案,灵活部署赋能个人与企业-onlyoffice

文章目录 1. 引言2. 免费畅享&#xff0c;个人的编辑利器2.1 PDF直接修改功能2.2 插件支持&#xff0c;应对多种工作场景2.3 AI助手智慧办公 3. 私有部署&#xff0c;开发者的自定义编辑器3.1 开发者版本介绍3.2 私有部署&#xff0c;解决数据安全问题3.3 实用功能丰富&#xf…

基于SpringBoot+Vue的流浪猫狗救助救援网站(带1w+文档)

基于SpringBootVue的流浪猫狗救助救援网站(带1w文档) 基于SpringBootVue的流浪猫狗救助救援网站(带1w文档) 该流浪猫狗救助救援网站在Windows平台下完成开发&#xff0c;采用java编程语言开发&#xff0c;将应用程序部署于Tomcat上&#xff0c;加之MySQL接口来实现交互式响应服…

LKEB-4030电阻器LKEB4030模块可议价

LKEB-4030电阻器LKEB4030模块可议价 LKEB-4030电阻器LKEB4030模块可议价 LKEB-4030电阻器LKEB4030模块可议价 LKEB-4030电阻器LKEB4030模块说明书 LKEB-4030电阻器LKEB4030模块接线图 LKEB-4030电阻器LKEB4030模块线路图 LKEB-4030电阻器&#xff08;Resistor&#xff09…

新手如何参加护网行动?一篇带你零基础入门到精通

前言 1、什么是护网行动 “护网行动”是指国家组织的网络安全防护演练行动。 护网行动通常由国家相关部门组织&#xff0c;旨在模拟真实的网络攻击情况&#xff0c;检验和提升关键信息基础设施、重要信息系统和大数据的安全防护能力。 在护网行动中&#xff0c;会有专业的攻…