📄 konfigdlg.cpp
字号:
// KonfigDlg.cpp : implementation file
//
#include "stdafx.h"
#include "RucniTerminal.h"
#include "KonfigDlg.h"
#include "Konfig.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CKonfigDlg dialog
CKonfigDlg::CKonfigDlg(CWnd* pParent /*=NULL*/)
: CDialog(CKonfigDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CKonfigDlg)
m_DatotekaZaPodatke = _T("");
m_DatotekaZaSpisak = _T("");
m_AutoDetekt = FALSE;
//}}AFX_DATA_INIT
}
void CKonfigDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CKonfigDlg)
DDX_Control(pDX, IDC_NACIN_TUMACENJA, m_NacinTumacenja);
DDX_Control(pDX, IDC_COM_PORT, m_COMPort);
DDX_Text(pDX, IDC_DATOTEKA_ZA_PODATKE, m_DatotekaZaPodatke);
DDX_Text(pDX, IDC_DATOTEKA_ZA_SPISAK, m_DatotekaZaSpisak);
DDX_Check(pDX, IDC_AUTODETEKT, m_AutoDetekt);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CKonfigDlg, CDialog)
//{{AFX_MSG_MAP(CKonfigDlg)
ON_CBN_SELCHANGE(IDC_COM_PORT, OnSelchangeComPort)
ON_BN_CLICKED(IDC_SNIMI, OnSnimi)
ON_CBN_SELCHANGE(IDC_NACIN_TUMACENJA, OnSelchangeNacinTumacenja)
ON_BN_CLICKED(IDC_AUTODETEKT, OnAutodetekt)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CKonfigDlg message handlers
BOOL CKonfigDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Inicijalizuj combo-box za izbor COM porta
m_COMPort.ResetContent(); // najpre isprazni listu
TSpisakCOMPortova::iterator s_iter = KKonfig::Instance()->SpisakCOMPortova.begin();
TSpisakCOMPortova::iterator s_iterEnd = KKonfig::Instance()->SpisakCOMPortova.end();
while ( s_iter != s_iterEnd ) {
m_COMPort.AddString( s_iter->nazivPorta.data() );
s_iter++;
}
// Selektuj trenutno aktivni COM port
m_COMPort.SelectString( -1, KKonfig::Instance()->DajAktivniCOMPort().data() );
m_DatotekaZaPodatke = KKonfig::Instance()->DajDatotekuZaPodatke().data();
m_DatotekaZaSpisak = KKonfig::Instance()->DajDatotekuZaSpisak().data();
// Inicijalizuj combo-box za izbor 'nacina tumacenja'
m_NacinTumacenja.ResetContent(); // najpre isprazni listu
// Napomena: redosled mora da odgovara vrednostima definisanim u enumeraciji
// 'IDNacinaTumacenjaSpecKoda' u 'Konfig.h' !!!
m_NacinTumacenja.AddString( "Bez konverzije" );
m_NacinTumacenja.AddString( "1250" );
m_NacinTumacenja.AddString( "YUSCII" );
m_NacinTumacenja.SetCurSel( int( KKonfig::Instance()->NacinaTumacenja() ) );
m_AutoDetekt = KKonfig::Instance()->IsAutomatskoProzivanje();
// Osvezi polja forme ( usaglasi sa vrednostima odgovarajucih promenljivih )
CKonfigDlg::UpdateData( FALSE );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
// Pomocna procedura : postavja aktivni COM port na osnovu 'list-box' promenljive
void CKonfigDlg::AktivirajCOMPort( void ) {
// Postavi selektovani port za aktivni
char cPom[30];
m_COMPort.GetLBText( m_COMPort.GetCurSel(), cPom );
KKonfig::Instance()->PostaviAktivniCOMPort( string( cPom ) );
}
void CKonfigDlg::OnSelchangeComPort()
{
AktivirajCOMPort();
}
void CKonfigDlg::OnSnimi()
{
// Osvezi promenljive forme
CKonfigDlg::UpdateData();
// Postavi konfiguracione parametre
AktivirajCOMPort();
KKonfig::Instance()->PostaviDatotekuZaPodatke( string( LPCTSTR( m_DatotekaZaPodatke ) ) );
KKonfig::Instance()->PostaviDatotekuZaSpisak( string( LPCTSTR( m_DatotekaZaSpisak ) ) );
AktivirajNacinTumacenja();
// Snimi konfiguracione parametre u konfiguracionu datoteku
CRucniTerminalApp* pRTApp = ( CRucniTerminalApp* ) AfxGetApp();
if ( KKonfig::Instance()->SnimiKonfigDatoteku() )
pRTApp->MyMessageBox( IDS_SNIMANJE_USPELO );
else
pRTApp->MyMessageBox( IDS_SNIMANJE_NEUSPELO );
}
// Pomocna procedura : postavja aktivni 'nacin tumacenja' na osnovu 'list-box' promenljive
void CKonfigDlg::AktivirajNacinTumacenja( void ){
// Postavi selektovani port za aktivni
int nIndeks = m_NacinTumacenja.GetCurSel();
KKonfig::Instance()->PostaviNacinTumacenja( IDNacinaTumacenjaSpecKoda( nIndeks ) );
}
void CKonfigDlg::OnSelchangeNacinTumacenja()
{
AktivirajNacinTumacenja();
}
void CKonfigDlg::OnAutodetekt()
{
// Osvezi promenljive forme
CKonfigDlg::UpdateData();
KKonfig::Instance()->AutomatskoProzivanje( ( m_AutoDetekt )?true:false );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -