Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Программы для выполнения лаб 1 и 2 / KALMAN / SOURCE / TXSETUPC
.CPP/* Project first
Copyright © 1997 by US. All Rights Reserved.
SUBSYSTEM: first.exe Application
FILE: txsetupb.cpp
AUTHOR: US
OVERVIEW
========
Source file for implementation of TXSetupC (TDialog).
*/
#include <owl\owlpch.h>
#pragma hdrstop
#include "txsetupc.h"
#include "tools.h"
//
// Build a response table for all messages/commands handled
// by the application.
//
DEFINE_RESPONSE_TABLE1(TXSetupC, TDialog)
//{{TXSetupCRSP_TBL_BEGIN}}
EV_BN_CLICKED(IDC_NEXT-1000, NextBNClicked),
EV_BN_CLICKED(IDC_BACK-1000, BackBNClicked),
//{{TXSetupCRSP_TBL_END}}
END_RESPONSE_TABLE;
//{{TXSetupC Implementation}}
TXSetupC::TXSetupC (TWindow* parent, FirstSetupList &results, TResId resId, TModule* module):
TDialog(parent, resId, module),
w_data(results), result(SetupStopped)
{
XIIBox = new TComboBox(this, IDC_INTERTIMETYPE, NoiseGeneratorNameLength, 0);
XIDBox = new TComboBox(this, IDC_DURATIONTYPE, NoiseGeneratorNameLength, 0);
XIFBox = new TComboBox(this, IDC_FORCE, NoiseGeneratorNameLength, 0);
XIFTBox = new TComboBox(this, IDC_FORCETYPE, NoiseGeneratorNameLength, 0);
XII_EEdit = new TEdit(this, IDC_INTERTIME_E, SetupNumbersLength, 0);
XII_DEdit = new TEdit(this, IDC_INTERTIME_D, SetupNumbersLength, 0);
XID_EEdit = new TEdit(this, IDC_DURATION_E, SetupNumbersLength, 0);
XID_DEdit = new TEdit(this, IDC_DURATION_D, SetupNumbersLength, 0);
XIF_EEdit = new TEdit(this, IDC_FORCE_E, SetupNumbersLength, 0);
XIF_DEdit = new TEdit(this, IDC_FORCE_D, SetupNumbersLength, 0);
BackButton = new TOwnerButton(this, IDC_BACK-1000, 0);
NextButton = new TOwnerButton(this, IDC_NEXT-1000, 0);
}
TXSetupC::~TXSetupC ()
{
Destroy();
}
void TXSetupC::NextBNClicked ()
{
result = SetupContinue;
CloseWindow(IDOK);
}
void TXSetupC::BackBNClicked ()
{
result = SetupBack;
CloseWindow(IDCANCEL);
}
BOOL TXSetupC::CanClose ()
{
if (!TDialog::CanClose())
return FALSE;
if (result == SetupContinue)
{
if (CheckFloatEditor(this, XII_EEdit, SetupNumbersLength, &w_data.Root->XI_Interval_E, "Мат. ожидание должно") ||
CheckFloatEditor(this, XII_DEdit, SetupNumbersLength, &w_data.Root->XI_Interval_D, "Дисперсия должна") ||
CheckFloatEditor(this, XID_EEdit, SetupNumbersLength, &w_data.Root->XI_Duration_E, "Мат. ожидание должно") ||
CheckFloatEditor(this, XID_DEdit, SetupNumbersLength, &w_data.Root->XI_Duration_D, "Дисперсия должна") ||
CheckFloatEditor(this, XIF_EEdit, SetupNumbersLength, &w_data.Root->XI_Type_E, "Мат. ожидание должно") ||
CheckFloatEditor(this, XIF_DEdit, SetupNumbersLength, &w_data.Root->XI_Type_D, "Дисперсия должна"))
return FALSE;
w_data.Root->XI_IntervalRule = (NoiseType)XIIBox->GetSelIndex();
w_data.Root->XI_DurationRule = (NoiseType)XIDBox->GetSelIndex();
w_data.Root->XI_TypeRule = (NoiseType)XIFTBox->GetSelIndex();
}
return TRUE;
}
BOOL TXSetupC::EvInitDialog (HWND hWndFocus)
{
BOOL result;
FirstSetup *p = w_data.Root;
unsigned index;
char buffer[22];
result = TDialog::EvInitDialog(hWndFocus);
sprintf(buffer, "%lf", p->XI_Interval_E);
killZeros(buffer);
XII_EEdit->Clear();
XII_EEdit->Insert(buffer);
sprintf(buffer, "%lf", p->XI_Interval_D);
killZeros(buffer);
XII_DEdit->Clear();
XII_DEdit->Insert(buffer);
sprintf(buffer, "%lf", p->XI_Duration_E);
killZeros(buffer);
XID_EEdit->Clear();
XID_EEdit->Insert(buffer);
sprintf(buffer, "%lf", p->XI_Duration_D);
killZeros(buffer);
XID_DEdit->Clear();
XID_DEdit->Insert(buffer);
sprintf(buffer, "%lf", p->XI_Type_E);
killZeros(buffer);
XIF_EEdit->Clear();
XIF_EEdit->Insert(buffer);
sprintf(buffer, "%lf", p->XI_Type_D);
killZeros(buffer);
XIF_DEdit->Clear();
XIF_DEdit->Insert(buffer);
XIIBox->AddString("Гауссовская");
XIIBox->AddString("Показательная");
XIIBox->AddString("Равномерная");
XIIBox->SetSelIndex(w_data.Root->XI_IntervalRule);
XIDBox->AddString("Гауссовская");
XIDBox->AddString("Показательная");
XIDBox->AddString("Равномерная");
XIDBox->SetSelIndex(w_data.Root->XI_DurationRule);
XIFBox->AddString("Белый шум");
XIFBox->SetSelIndex(0);
XIFTBox->AddString("Гауссовская");
XIFTBox->AddString("Показательная");
XIFTBox->AddString("Равномерная");
XIFTBox->SetSelIndex(w_data.Root->XI_TypeRule);
SetDefaultId(IDC_NEXT-1000);
return result;
}
void TXSetupC::SetupWindow ()
{
TDialog::SetupWindow();
// Position window to the center of desktop
TRect dialog_pos;
RECT desktop_pos;
unsigned dcx, dcy, sx, sy;
GetWindowRect(dialog_pos);
::GetWindowRect(GetDesktopWindow(), &desktop_pos);
dcx = desktop_pos.left + desktop_pos.right;
dcy = desktop_pos.top + desktop_pos.bottom;
sx = dialog_pos.right - dialog_pos.left;
sy = dialog_pos.bottom - dialog_pos.top;
dialog_pos.left = (dcx - sx) >> 1;
dialog_pos.right = (dcx + sx) >> 1;
dialog_pos.top = (dcy - sy) >> 1;
dialog_pos.bottom = (dcy + sy) >> 1;
MoveWindow(dialog_pos, FALSE);
}
Соседние файлы в папке SOURCE