⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 konfigdlg.cpp

📁 load data from pc to hand held terminal and vice versa
💻 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 + -