本文主要是介绍26.入口点注入项目搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
上一个内容:25.入口点注入
首先创建一个mfc项目:
然后
然后
然后就创建好了,选择Dlg自定义比较方便
然后可以设置一下项目的版本信息
然后设置一下tab,让它可以随着窗口的大小进行灵活变更
tab设置之后的效果图:
然后添加一个tab的变量,点完成
在下图红框位置添加额外的初始化代码
然后先插入两个Dialog
它们的样式属性要设置为Child,否则主页面的TAb控制没法切换
然后给新加的Dialog添加上类
双击下图红框位置可以自动创建一个函数,这个函数是用来切换的
函数图:
代码:
GAMEHACKERDlg.cpp文件
bool CGAMEHACKERDlg::InstallPage(CDialogEx* wnd, int IDD_WND, CString&& _Name, BOOL IsShow)
{if (CurPage >= MAX_PAGE) {return false;}Pages[CurPage] = wnd;Pages[CurPage]->Create(IDD_WND);Pages[CurPage]->SetParent(this);Pages[CurPage]->ShowWindow(IsShow);CRect rect;mTab.GetClientRect(&rect);rect.top += 46;rect.left += 20;rect.bottom += 5;rect.right += 5;Pages[CurPage]->MoveWindow(&rect);mTab.InsertItem(CurPage, _Name);CurPage++;return false;
}InstallPage(&PageINJ, IDD_PAGE_0, L"注入", TRUE);InstallPage(&PageINC, IDD_PAGE_1, L"注入检测");void CGAMEHACKERDlg::OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{// TODO: 在此添加控件通知处理程序代码*pResult = 0;// 得到当前选择的tabint n = mTab.GetCurSel();for (int i = 0; i < CurPage; i++) {Pages[i]->ShowWindow(i == n);}
}
GAMEHACKERDlg.h文件
protected:HICON m_hIcon;CWndINJ PageINJ;CWndINC PageINC;CDialogEx* Pages[MAX_PAGE];// CString Name[MAX_PAGE];short CurPage = 0;bool InstallPage(CDialogEx* wnd, int IDD_WND, CString&& _Name, BOOL IsShow = FALSE);// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()
public:CTabCtrl mTab;afx_msg void OnTcnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult);
};
这篇关于26.入口点注入项目搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!