?? newdialog.cpp
字號:
/*
*
* Copyright 2004-2006 Ghassan OREIBY
*
* This file is part of Neurality.
*
* Neurality is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* Neurality is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Neurality; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
*/
// NewDialog.cpp : implementation file
//
#include "stdafx.h"
#include "GUI.h"
#include "NewDialog.h"
// CNewDialog dialog
IMPLEMENT_DYNAMIC(CNewDialog, CDialog)
CNewDialog::CNewDialog(CWnd* pParent /*=NULL*/)
: CDialog(CNewDialog::IDD, pParent)
, m_nInputNo(400)
, m_nOuputNo(26)
, m_nNoOfHiddenLayers(0)
, m_nHiddenNo(1)
, m_fInputMin(0)
, m_fInputMax(1)
, m_fOutputMin(0)
, m_fOutputMax(1)
, m_nHiddenArray(NULL)
, m_nTotalHidden(0)
{
}
CNewDialog::~CNewDialog()
{
if (m_nHiddenArray) delete[] m_nHiddenArray;
}
void CNewDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SPIN_INPUT, m_SpinInput);
DDX_Control(pDX, IDC_SPIN_OUTPUT, m_SpinOutput);
DDX_Control(pDX, IDC_SPIN_LAYER, m_SpinLayer);
DDX_Control(pDX, IDC_SPIN_HIDDEN, m_SpinHidden);
DDX_Control(pDX, IDC_LISTHIDDEN, m_HiddenList);
DDX_Text(pDX, IDC_EDITINPUTNO, m_nInputNo);
DDV_MinMaxInt(pDX, m_nInputNo, 1, 400);
DDX_Text(pDX, IDC_EDITOUTPUTNO, m_nOuputNo);
DDV_MinMaxInt(pDX, m_nOuputNo, 1, 50);
DDX_Text(pDX, IDC_EDITLAYERNO, m_nNoOfHiddenLayers);
DDV_MinMaxInt(pDX, m_nNoOfHiddenLayers, 0, 25);
DDX_Text(pDX, IDC_EDITHIDDENNO, m_nHiddenNo);
DDV_MinMaxInt(pDX, m_nHiddenNo, 1, 100);
DDX_Text(pDX, IDC_EDITINPUTMIN, m_fInputMin);
DDX_Text(pDX, IDC_EDITINPUTMAX, m_fInputMax);
DDX_Text(pDX, IDC_EDITOUTPUTMIN, m_fOutputMin);
DDX_Text(pDX, IDC_EDITOUTPUTMAX, m_fOutputMax);
}
BEGIN_MESSAGE_MAP(CNewDialog, CDialog)
ON_BN_CLICKED(IDC_ACCEPT, OnBnClickedAccept)
ON_BN_CLICKED(IDC_APPLY, OnBnClickedApply)
ON_LBN_DBLCLK(IDC_LISTHIDDEN, OnLbnDblclkListhidden)
ON_BN_CLICKED(IDRESET, OnBnClickedReset)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
END_MESSAGE_MAP()
// CNewDialog message handlers
BOOL CNewDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_SpinInput.SetRange(1, 200);
m_SpinOutput.SetRange(1, 50);
m_SpinLayer.SetRange(0, 25);
m_SpinHidden.SetRange(1, 100);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CNewDialog::OnBnClickedAccept()
{
TCHAR sTemp[64];
UpdateData();
if (m_nNoOfHiddenLayers == m_nTotalHidden) return;
if (m_nHiddenArray) delete[] m_nHiddenArray;
m_HiddenList.ResetContent();
m_nTotalHidden = m_nNoOfHiddenLayers;
m_nHiddenArray = new int[m_nTotalHidden];
for (int i = 0; i < m_nTotalHidden; i++)
{
m_nHiddenArray[i] = m_nHiddenNo;
if ( i < 9)
wsprintf(sTemp, "Hidden Layer#%d%15i", i + 1, m_nHiddenArray[i]);
else
wsprintf(sTemp, "Hidden Layer#%d%13i", i + 1, m_nHiddenArray[i]);
m_HiddenList.InsertString(i, sTemp);
}
// TODO: Add your control notification handler code here
}
void CNewDialog::OnBnClickedApply()
{
int nCurSel = m_HiddenList.GetCurSel();
TCHAR sTemp[64];
if (nCurSel == LB_ERR)
{
MessageBox(TEXT("You must select the layer to change before hitting the button!"),
TEXT("Error!"), MB_ICONERROR);
return;
}
UpdateData();
m_nHiddenArray[nCurSel] = m_nHiddenNo;
m_HiddenList.ResetContent();
for (int i = 0; i < m_nTotalHidden; i++)
{
if ( i < 9)
wsprintf(sTemp, "Hidden Layer#%d%15i", i + 1, m_nHiddenArray[i]);
else
wsprintf(sTemp, "Hidden Layer#%d%13i", i + 1, m_nHiddenArray[i]);
m_HiddenList.InsertString(i, sTemp);
}
m_HiddenList.SetCurSel(nCurSel);
}
void CNewDialog::OnLbnDblclkListhidden()
{
int nCurSel = m_HiddenList.GetCurSel();
TCHAR sTemp[64];
UpdateData();
m_nHiddenArray[nCurSel] = m_nHiddenNo;
m_HiddenList.ResetContent();
for (int i = 0; i < m_nTotalHidden; i++)
{
if ( i < 9)
wsprintf(sTemp, "Hidden Layer#%d%15i", i + 1, m_nHiddenArray[i]);
else
wsprintf(sTemp, "Hidden Layer#%d%13i", i + 1, m_nHiddenArray[i]);
m_HiddenList.InsertString(i, sTemp);
}
m_HiddenList.SetCurSel(nCurSel);
}
void CNewDialog::OnBnClickedReset()
{
m_nInputNo = 1;
m_nOuputNo = 1;
m_nNoOfHiddenLayers = 0;
m_nHiddenNo = 1;
m_fInputMin = 0;
m_fInputMax = 1;
m_fOutputMin = 0;
m_fOutputMax = 1;
m_nTotalHidden = 0;
if (m_nHiddenArray) delete[] m_nHiddenArray;
m_nHiddenArray = NULL;
m_HiddenList.ResetContent();
UpdateData(FALSE);
}
void CNewDialog::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
UpdateData();
if (m_fInputMin >= m_fInputMax)
MessageBox(TEXT("Check the range for the Input (Min >= Max)"), TEXT("ERROR"), MB_ICONERROR);
else if (m_fOutputMin >= m_fOutputMax)
MessageBox(TEXT("Check the range for the Output (Min >= Max)"), TEXT("ERROR"), MB_ICONERROR);
else
OnOK();
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -