📄 page.cpp
字号:
#include "pch.h"
#include "main.h"
#include "page.h"
BEGIN_MESSAGE_MAP ( CGenericPage , CPropertyPage )
ON_BN_CLICKED ( IDC_DEBUG_MSG , OnClick )
ON_BN_CLICKED ( IDC_EXTRA_MSG , OnClick )
ON_BN_CLICKED ( IDC_DUMP_FILE , OnClick )
ON_BN_CLICKED ( IDC_NOTIFY , OnClick )
ON_BN_CLICKED ( IDC_DISPLAY , OnClick )
ON_BN_CLICKED ( IDC_DISPLAY_SYNC , OnClick )
ON_EN_CHANGE ( IDC_MAX_DISPLAY , OnClick )
END_MESSAGE_MAP ( )
CGenericPage::CGenericPage ( )
: CPropertyPage ( IDD_PAGE_GENERIC )
{
}
CGenericPage::~CGenericPage ( )
{
}
BOOL CGenericPage::OnInitDialog ( )
{
CPropertyPage::OnInitDialog ( ) ;
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
m_bRecordDebugMsg = p->m_appOption.m_bRecordDebugMsg ;
m_bRecordExtraMsg = p->m_appOption.m_bRecordExtraMsg ;
m_bDumpFile = p->m_appOption.m_bDumpFile ;
m_bNotify = p->m_appOption.m_bNotify ;
m_bDisplay = p->m_appOption.m_bDisplay ;
m_bDisplaySync = p->m_appOption.m_bDisplaySync ;
m_bViewAll = p->m_appOption.m_bViewAll ;
m_bUndecorate = p->m_appOption.m_bUndecorate ;
m_dwMaxDisplay = p->m_appOption.m_dwMaxDisplay ;
UpdateData ( FALSE ) ;
return TRUE ;
}
void CGenericPage::OnOK ( )
{
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
p->m_appOption.m_bRecordDebugMsg = m_bRecordDebugMsg ;
p->m_appOption.m_bRecordExtraMsg = m_bRecordExtraMsg ;
p->m_appOption.m_bDumpFile = m_bDumpFile ;
p->m_appOption.m_bNotify = m_bNotify ;
p->m_appOption.m_bDisplay = m_bDisplay ;
p->m_appOption.m_bDisplaySync = m_bDisplaySync ;
p->m_appOption.m_bViewAll = m_bViewAll ;
p->m_appOption.m_bUndecorate = m_bUndecorate ;
p->m_appOption.m_dwMaxDisplay = m_dwMaxDisplay ;
CPropertyPage::OnOK ( ) ;
}
void CGenericPage::DoDataExchange ( CDataExchange* pDX )
{
CPropertyPage::DoDataExchange ( pDX ) ;
DDX_Check ( pDX , IDC_VIEW_ALL , m_bViewAll ) ;
DDX_Check ( pDX , IDC_UNDECORATE , m_bUndecorate ) ;
DDX_Check ( pDX , IDC_DEBUG_MSG , m_bRecordDebugMsg ) ;
DDX_Check ( pDX , IDC_EXTRA_MSG , m_bRecordExtraMsg ) ;
DDX_Check ( pDX , IDC_DUMP_FILE , m_bDumpFile ) ;
DDX_Check ( pDX , IDC_NOTIFY , m_bNotify ) ;
DDX_Check ( pDX , IDC_DISPLAY , m_bDisplay ) ;
DDX_Check ( pDX , IDC_DISPLAY_SYNC , m_bDisplaySync ) ;
DDX_Text ( pDX , IDC_MAX_DISPLAY , m_dwMaxDisplay ) ;
DDV_MinMaxDWord ( pDX , m_dwMaxDisplay , 200 , 20000 ) ;
}
void CGenericPage::OnClick ( )
{
SetModified ( ) ;
}
BEGIN_MESSAGE_MAP ( CDebugPage , CPropertyPage )
ON_BN_CLICKED ( IDC_CHECK_DEBUGGER , OnClick )
ON_BN_CLICKED ( IDC_HOOK_EXPLICIT , OnClick )
END_MESSAGE_MAP ( )
CDebugPage::CDebugPage ( )
: CPropertyPage ( IDD_PAGE_DEBUG )
{
}
CDebugPage::~CDebugPage ( )
{
}
void CDebugPage::DoDataExchange ( CDataExchange* pDX )
{
CPropertyPage::DoDataExchange ( pDX ) ;
DDX_Check ( pDX , IDC_CHECK_DEBUGGER , m_bCheckDebugger ) ;
DDX_Check ( pDX , IDC_HOOK_EXPLICIT , m_bHookExplicit ) ;
DDX_Check ( pDX , IDC_GET_REGISTER , m_bGetRegister ) ;
}
BOOL CDebugPage::OnInitDialog ( )
{
CPropertyPage::OnInitDialog ( ) ;
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
m_bCheckDebugger = p->m_appOption.m_bCheckDebugger ;
m_bHookExplicit = p->m_appOption.m_bHookExplicit ;
m_bGetRegister = p->m_appOption.m_bGetRegister ;
UpdateData ( FALSE ) ;
return TRUE ;
}
void CDebugPage::OnOK ( )
{
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
p->m_appOption.m_bCheckDebugger = m_bCheckDebugger ;
p->m_appOption.m_bHookExplicit = m_bHookExplicit ;
p->m_appOption.m_bGetRegister = m_bGetRegister ;
CPropertyPage::OnOK ( ) ;
}
void CDebugPage::OnClick ( )
{
SetModified ( ) ;
}
BEGIN_MESSAGE_MAP ( CExtensionPage , CPropertyPage )
ON_BN_CLICKED ( IDC_ADD , OnAddClick )
ON_BN_CLICKED ( IDC_REMOVE , OnRemoveClick )
ON_BN_CLICKED ( IDC_MOVE_UP , OnMoveUpClick )
ON_BN_CLICKED ( IDC_MOVE_DOWN , OnMoveDownClick )
ON_BN_CLICKED ( IDC_ADD2 , OnAddClick2 )
ON_BN_CLICKED ( IDC_REMOVE2 , OnRemoveClick2 )
ON_BN_CLICKED ( IDC_MOVE_UP2 , OnMoveUpClick2 )
ON_BN_CLICKED ( IDC_MOVE_DOWN2 , OnMoveDownClick2 )
END_MESSAGE_MAP ( )
CExtensionPage::CExtensionPage ( )
: CPropertyPage ( IDD_PAGE_EXTENSION )
{
}
CExtensionPage::~CExtensionPage ( )
{
}
void CExtensionPage::DoDataExchange ( CDataExchange* pDX )
{
CPropertyPage::DoDataExchange ( pDX );
DDX_Control ( pDX , IDC_PROCESSOR_LIST , m_xDecoder ) ;
DDX_Control ( pDX , IDC_FILE_LIST , m_xTypeFile ) ;
}
BOOL CExtensionPage::OnInitDialog ( )
{
CPropertyPage::OnInitDialog ( ) ;
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
AppOption& op = p->m_appOption;
int i , n ;
n = op.m_arDecoder.GetSize ( ) ;
for ( i = 0 ; i < n ; i++ )
{
m_xDecoder.AddString ( op.m_arDecoder [ i ] ) ;
}
n = op.m_arTypeFile.GetSize ( ) ;
for ( i = 0 ; i < n ; i++ )
{
m_xTypeFile.AddString ( op.m_arTypeFile [ i ] ) ;
}
UpdateData ( FALSE ) ;
return TRUE ;
}
void CExtensionPage::OnAddClick ( )
{
CString filter ; filter.LoadString ( IDS_FILTER ) ;
CFileDialog* p = new CFileDialog (
TRUE ,
".EXE" ,
NULL ,
OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT ,
filter ) ;
if ( p->DoModal ( ) == IDOK )
{
UpdateData ( ) ;
BOOL f = FALSE ;
int i , n = m_xDecoder.GetCount ( ) ;
for ( i = 0 ; i < n ; i++ )
{
CString pn ;
m_xDecoder.GetText ( i , pn ) ;
if ( pn.CompareNoCase ( p->GetPathName ( ) ) == 0 )
{
f = TRUE ;
break ;
}
}
if ( f == FALSE )
{
i = m_xDecoder.AddString ( p->GetPathName ( ) ) ;
}
m_xDecoder.SetCurSel ( i ) ;
UpdateData ( FALSE ) ;
}
delete p ;
SetModified ( ) ;
}
void CExtensionPage::OnRemoveClick ( )
{
UpdateData ( ) ;
int i = m_xDecoder.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
m_xDecoder.DeleteString ( i ) ;
if ( i >= m_xDecoder.GetCount ( ) )
i = m_xDecoder.GetCount ( ) - 1 ;
if ( i >= 0 )
m_xDecoder.SetCurSel ( i ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnMoveUpClick ( )
{
UpdateData ( ) ;
int i = m_xDecoder.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
if ( i - 1 < 0 )
return ;
CString s1 , s2 ;
m_xDecoder.GetText ( i - 1 , s1 ) ;
m_xDecoder.GetText ( i , s2 ) ;
m_xDecoder.DeleteString ( i - 1 ) ;
m_xDecoder.DeleteString ( i - 1 ) ;
m_xDecoder.InsertString ( i - 1 , s1 ) ;
m_xDecoder.InsertString ( i - 1 , s2 ) ;
m_xDecoder.SetCurSel ( i - 1 ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnMoveDownClick ( )
{
UpdateData ( ) ;
int i = m_xDecoder.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
if ( i + 1 >= m_xDecoder.GetCount ( ) )
return ;
CString s1 , s2 ;
m_xDecoder.GetText ( i , s1 ) ;
m_xDecoder.GetText ( i + 1 , s2 ) ;
m_xDecoder.DeleteString ( i ) ;
m_xDecoder.DeleteString ( i ) ;
m_xDecoder.InsertString ( i , s1 ) ;
m_xDecoder.InsertString ( i , s2 ) ;
m_xDecoder.SetCurSel ( i + 1 ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnAddClick2 ( )
{
CString filter ; filter.LoadString ( IDS_FILTER2 ) ;
CFileDialog* p = new CFileDialog (
TRUE ,
".EXE" ,
NULL ,
OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT ,
filter ) ;
if ( p->DoModal ( ) == IDOK )
{
UpdateData ( ) ;
BOOL f = FALSE ;
int i , n = m_xTypeFile.GetCount ( ) ;
for ( i = 0 ; i < n ; i++ )
{
CString pn ;
m_xTypeFile.GetText ( i , pn ) ;
if ( pn.CompareNoCase ( p->GetPathName ( ) ) == 0 )
{
f = TRUE ;
break ;
}
}
if ( f == FALSE )
{
i = m_xTypeFile.AddString ( p->GetPathName ( ) ) ;
}
m_xTypeFile.SetCurSel ( i ) ;
UpdateData ( FALSE ) ;
}
delete p ;
SetModified ( ) ;
}
void CExtensionPage::OnRemoveClick2 ( )
{
UpdateData ( ) ;
int i = m_xTypeFile.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
m_xTypeFile.DeleteString ( i ) ;
if ( i >= m_xTypeFile.GetCount ( ) )
i = m_xTypeFile.GetCount ( ) - 1 ;
if ( i >= 0 )
m_xTypeFile.SetCurSel ( i ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnMoveUpClick2 ( )
{
UpdateData ( ) ;
int i = m_xTypeFile.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
if ( i - 1 < 0 )
return ;
CString s1 , s2 ;
m_xTypeFile.GetText ( i - 1 , s1 ) ;
m_xTypeFile.GetText ( i , s2 ) ;
m_xTypeFile.DeleteString ( i - 1 ) ;
m_xTypeFile.DeleteString ( i - 1 ) ;
m_xTypeFile.InsertString ( i - 1 , s1 ) ;
m_xTypeFile.InsertString ( i - 1 , s2 ) ;
m_xTypeFile.SetCurSel ( i - 1 ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnMoveDownClick2 ( )
{
UpdateData ( ) ;
int i = m_xTypeFile.GetCurSel ( ) ;
if ( i == LB_ERR ) return ;
if ( i + 1 >= m_xTypeFile.GetCount ( ) )
return ;
CString s1 , s2 ;
m_xTypeFile.GetText ( i , s1 ) ;
m_xTypeFile.GetText ( i + 1 , s2 ) ;
m_xTypeFile.DeleteString ( i ) ;
m_xTypeFile.DeleteString ( i ) ;
m_xTypeFile.InsertString ( i , s1 ) ;
m_xTypeFile.InsertString ( i , s2 ) ;
m_xTypeFile.SetCurSel ( i + 1 ) ;
UpdateData ( FALSE ) ;
SetModified ( ) ;
}
void CExtensionPage::OnOK ( )
{
CMainApp* p = ( CMainApp* ) AfxGetApp ( ) ;
AppOption& a = p->m_appOption ;
int i , n ;
UpdateData ( ) ;
a.m_arDecoder.RemoveAll ( ) ;
n = m_xDecoder.GetCount ( ) ;
for ( i = 0 ; i < n ; i++ )
{
CString pn ;
m_xDecoder.GetText ( i , pn ) ;
a.m_arDecoder.Add ( pn ) ;
}
a.m_arTypeFile.RemoveAll ( ) ;
n = m_xTypeFile.GetCount ( ) ;
for ( i = 0 ; i < n ; i++ )
{
CString pn ;
m_xTypeFile.GetText ( i , pn ) ;
a.m_arTypeFile.Add ( pn ) ;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -