69.搭建分析工具界面
创始人
2024-11-11 13:37:02

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

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

上一个内容: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(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(); }; 

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...