?? pacconfigdlg.cpp
字號:
/**
* File : PacConfigDlg.cpp
* Author : Kevin Lynx
* Date : 2007.8.4
*/
#include "stdafx.h"
#include "PacConfig.h"
#include "PacConfigDlg.h"
BEGIN_MESSAGE_MAP(CPacConfigDlg, CDialog)
END_MESSAGE_MAP()
CPacConfigDlg::CPacConfigDlg( CWnd* pParent )
: CDialog( CPacConfigDlg::IDD, pParent )
{
mhIcon = AfxGetApp()->LoadIcon( IDI_ICON1 );
}
CPacConfigDlg::~CPacConfigDlg()
{
}
void CPacConfigDlg::DoDataExchange( CDataExchange* pDX )
{
CDialog::DoDataExchange( pDX );
/// 獲取對話框數(shù)據(jù)
DDX_Check( pDX, IDC_FULLSCR, mbFullScreen );
DDX_Check( pDX, IDC_LIGHT, mbEnableLight );
DDX_Control( pDX, IDC_BITS, mCtlBits);
DDX_Control( pDX, IDC_DEVICE, mCtlDevice );
DDX_Control( pDX, IDC_VOLUME, mCtlVolume );
/// update the variables
if( mCtlBits.GetCurSel() == 0 )
{
mBits = 32;
}
else if( mCtlBits.GetCurSel() == 1 )
{
mBits = 16;
}
if( mCtlDevice.GetCurSel() == 0 )
{
mDeviceType = DT_OPENGL;
}
else if( mCtlDevice.GetCurSel() == 1 )
{
mDeviceType = DT_D3D8;
}
else if( mCtlDevice.GetCurSel() == 2 )
{
mDeviceType = DT_D3D9 ;
}
mVolume = mCtlVolume.GetPos() / 100.0f;
}
BOOL CPacConfigDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetIcon( mhIcon, TRUE);
SetIcon( mhIcon, FALSE);
InitControl();
if( !LoadConfig() )
{
SetDefault();
SaveConfig();
}
return TRUE;
}
BOOL CPacConfigDlg::LoadConfig()
{
FILE *fp = fopen( "data/config.ini", "r" );
if( fp == 0 )
{
return FALSE;
}
int full_screen = 1;
int enable_light = 1;
fscanf( fp, "full_screen=%d\n", &full_screen );
fscanf( fp, "bits=%d\n", &mBits );
fscanf( fp, "device_type=%d\n", &mDeviceType );
fscanf( fp, "enable_light=%d\n", &enable_light );
fscanf( fp, "global_volume=%f\n", &mVolume );
fclose( fp );
mbFullScreen = full_screen != 0 ? true : false;
mbEnableLight = enable_light != 0 ? true : false;
/// update the control
if( mBits == 16 )
{
mCtlBits.SetCurSel( 1 );
}
else if( mBits == 32 )
{
mCtlBits.SetCurSel( 0 );
}
if( mDeviceType == DT_D3D8 )
{
mCtlDevice.SetCurSel( 1 );
}
else if( mDeviceType == DT_D3D9 )
{
mCtlDevice.SetCurSel( 2 );
}
else if( mDeviceType == DT_OPENGL )
{
mCtlDevice.SetCurSel( 0 );
}
mCtlVolume.SetPos( int( mVolume * 100 ) );
this->UpdateData( false );
return TRUE;
}
void CPacConfigDlg::InitControl()
{
mCtlBits.AddString( "32位" );
mCtlBits.AddString( "16位" );
mCtlDevice.AddString( "OpenGL" );
mCtlDevice.AddString( "DirectX 8.1" );
mCtlDevice.AddString( "DirectX 9.0" );
mCtlVolume.SetRange( 0, 100 );
}
void CPacConfigDlg::SetDefault()
{
mbFullScreen = true;
mbEnableLight = true;
mDeviceType = DT_D3D9;
mBits = 32;
mVolume = 0.5f;
}
void CPacConfigDlg::SaveConfig()
{
FILE *fp = fopen( "data/config.ini", "w" );
if( fp == 0 )
{
return ;
}
fprintf( fp, "full_screen=%d\n", mbFullScreen ? 1 : 0 );
fprintf( fp, "bits=%d\n", mBits );
fprintf( fp, "device_type=%d\n", mDeviceType );
fprintf( fp, "enable_light=%d\n", mbEnableLight ? 1 : 0 );
fprintf( fp, "global_volume=%f\n", mVolume );
fclose( fp );
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -