Технология разработки программного обеспечения систем управления
Учреждение
образования
«БЕЛОРУССКИЙ
ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ»
Кафедра
СИСТЕМ УПРАВЛЕНИЯ
Контрольная
работа № 1
ТЕХНОЛОГИЯ
РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СИСТЕМ УПРАВЛЕНИЯ
Выполнил:
студент группы 002402
ФЗО, специальность 1-530107
Оразмамедов Вельмурад Байрамурадович
Минск 2013
1. Элементы управления радиокнопки (Radio
Button) и переключатели (Check Box)
Задание к лабораторной работе
В индивидуальном задании составить программу для
вычисления составной функции в соответствии со своим вариантом. Требуется
самостоятельно выбрать необходимое количество исходных данных для того, чтобы в
программе выполнялись все возможные ветви алгоритма. Перед выводом полученного
результата программа должна сообщать о ветви, для которой он получен. В
качестве f(x) использовать по выбору: «радиокнопками» функции cos(x), sin(x),
tg(x). Программа должна через «переключатели» запоминать или не запоминать min
и max найденные значения. Вариант интерфейса приведен на рисунке 1.
Рисунок 1. - Вариант интерфейса
Исходный код:
#include "stdafx.h"
#include "lab1_6.h"
#include "lab1_6Dlg.h"
#include "math.h"
#define PI 3.14159265
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = __FILE__;
#endifmax=-99999;min=99999;
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App AboutCAboutDlg
: public CDialog
{:();
// Dialog Data
//{{AFX_DATA(CAboutDlg){ IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function
overrides
//{{AFX_VIRTUAL(CAboutDlg):void
DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG_MESSAGE_MAP()
};::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}CAboutDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLab1_6Dlg dialog_6Dlg::CLab1_6Dlg(CWnd*
pParent /*=NULL*/)
: CDialog(CLab1_6Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLab1_6Dlg)_x = 0;_y = 0;_z =
0;_t = _T("");_r = -1;_mn = FALSE;_mx = FALSE;
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a
subsequent DestroyIcon in Win32_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}CLab1_6Dlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLab1_6Dlg)_Text(pDX,
IDC_EDIT1, m_x);_Text(pDX, IDC_EDIT2, m_y);_Text(pDX, IDC_EDIT3,
m_z);_Text(pDX, IDC_EDIT4, m_t);_Radio(pDX, IDC_RADIO1, m_r);_Check(pDX,
IDC_CHECK1, m_mn);_Check(pDX, IDC_CHECK2, m_mx);
//}}AFX_DATA_MAP
}_MESSAGE_MAP(CLab1_6Dlg, CDialog)
//{{AFX_MSG_MAP(CLab1_6Dlg)_WM_SYSCOMMAND()_WM_PAINT()_WM_QUERYDRAGICON()_BN_CLICKED(IDC_BUTTON1,
OnButton1)
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLab1_6Dlg message
handlersCLab1_6Dlg::OnInitDialog()
{ m_r=0;::OnInitDialog();
// Add "About..." menu item to system
menu.
// IDM_ABOUTBOX must be in the system command
range.((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);(IDM_ABOUTBOX <
0xF000);* pSysMenu = GetSystemMenu(FALSE);(pSysMenu != NULL)
{strAboutMenu;.LoadString(IDS_ABOUTBOX);(!strAboutMenu.IsEmpty())
{>AppendMenu(MF_SEPARATOR);>AppendMenu(MF_STRING,
IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework
does this automatically
// when the application's main window is not a
dialog(m_hIcon, TRUE);// Set big icon(m_hIcon, FALSE);// Set small icon
// TODO: Add extra initialization hereTRUE; //
return TRUE unless you set the focus to a control
}CLab1_6Dlg::OnSysCommand(UINT nID, LPARAM
lParam)
{((nID & 0xFFF0) == IDM_ABOUTBOX)
{dlgAbout;.DoModal();
}
{::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog,
you will need the code below
// to draw the icon. For MFC applications using
the document/view model,
// this is automatically done for you by the
framework.CLab1_6Dlg::OnPaint()
{(IsIconic())
{dc(this); // device context for
painting(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectanglecxIcon =
GetSystemMetrics(SM_CXICON);cyIcon =
GetSystemMetrics(SM_CYICON);rect;(&rect);x = (rect.Width() - cxIcon + 1) /
2;y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon.DrawIcon(x, y, m_hIcon);
}
{::OnPaint();
}
}
// The system calls this to obtain the cursor to
display while the user drags
// the minimized
window.CLab1_6Dlg::OnQueryDragIcon()
{(HCURSOR) m_hIcon;
}CLab1_6Dlg::OnButton1()
{
f,fun,minz,maxz;*metod;str;(TRUE);(m_r==0)f=sin(m_x*PI/180);//рассчет F(X)(m_r==1)
f=cos(m_x*PI/180);//рассчет F(X)(m_r==2)f=tan(m_x*PI/180);//рассчет
F(X)=f;//выбора максимального значения (maxz<m_y) maxz=m_y;(maxz<m_z)
maxz=m_z;=f;//выбор минимального значения(minz>m_y)
minz=m_y;=(maxz/minz)+5;(max<fun && m_mx) max=fun;//для включения
сохранения максимума(min>fun && m_mn) min=fun;//для включения
сохранения минимума(minz==0) //для вывода результатов начало
{.Format("Delenie na
0%c%c",13,10);_t=m_t+str;
}{(max==-99999 && min==99999)
{.Format("m=%lf, min NO, max
NO%c%c",fun,13,10);_t=m_t+str;
}
{
if (max==-99999)
{
str.Format("m=%lf, min %lf, max
NO%c%c",fun,min,13,10);
m_t=m_t+str;
}
else {
if (min==99999){
str.Format("m=%lf, min NO, max
%lf%c%c",fun,max,13,10);_t=m_t+str;
}{
str.Format("m=%lf, min %lf, max
%lf%c%c",fun,min,max,13,10);_t=m_t+str;
}
}
}}//для вывода результатов конец(FALSE);
}
радиокнопка combobox файл управление
2. Работа с элементом управления
«Комбинированный список» (ComboBox)
Дана строка, состоящая из букв, цифр, запятых,
точек, знаков ”+” и ”-”. Вывести подстроку, которая соответствует записи целого
числа ( т.е. начинается со знаков ”+” и ”-” и внутри подстроки нет букв,
запятых и точек).
Исходный код:
#include "stdafx.h"
#include "lab2_6.h"
#include "lab2_6Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App AboutCAboutDlg
: public CDialog
{:();
// Dialog Data
//{{AFX_DATA(CAboutDlg){ IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function
overrides
//{{AFX_VIRTUAL(CAboutDlg):void
DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG_MESSAGE_MAP()
};::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}CAboutDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLab2_6Dlg dialog_6Dlg::CLab2_6Dlg(CWnd*
pParent /*=NULL*/)
: CDialog(CLab2_6Dlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLab2_6Dlg)_a =
_T("");_b = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a
subsequent DestroyIcon in Win32_hIcon =
AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}CLab2_6Dlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLab2_6Dlg)_Control(pDX,
IDC_COMBO1, m_c);_Text(pDX, IDC_EDIT1, m_a);_Text(pDX, IDC_EDIT2, m_b);
//}}AFX_DATA_MAP
}_MESSAGE_MAP(CLab2_6Dlg, CDialog)
//{{AFX_MSG_MAP(CLab2_6Dlg)_WM_SYSCOMMAND()_WM_PAINT()_WM_QUERYDRAGICON()_BN_CLICKED(IDC_BUTTON1,
OnButton1)_BN_CLICKED(IDC_BUTTON2, OnButton2)_BN_CLICKED(IDC_BUTTON3,
OnButton3)
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLab2_6Dlg message
handlersCLab2_6Dlg::OnInitDialog()
{::OnInitDialog();
// Add "About..." menu item to system
menu.
// IDM_ABOUTBOX must be in the system command
range.((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);(IDM_ABOUTBOX <
0xF000);* pSysMenu = GetSystemMenu(FALSE);(pSysMenu != NULL)
{strAboutMenu;.LoadString(IDS_ABOUTBOX);(!strAboutMenu.IsEmpty())
{>AppendMenu(MF_SEPARATOR);>AppendMenu(MF_STRING,
IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework
does this automatically
// when the application's main window is not a
dialog(m_hIcon, TRUE);// Set big icon(m_hIcon, FALSE);// Set small icon
// TODO: Add extra initialization hereTRUE; //
return TRUE unless you set the focus to a control
}CLab2_6Dlg::OnSysCommand(UINT nID, LPARAM
lParam)
{((nID & 0xFFF0) == IDM_ABOUTBOX)
{dlgAbout;.DoModal();
}
{::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog,
you will need the code below
// to draw the icon. For MFC applications using
the document/view model,
// this is automatically done for you by the
framework.CLab2_6Dlg::OnPaint()
{(IsIconic())
{dc(this); // device context for
painting(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectanglecxIcon =
GetSystemMetrics(SM_CXICON);cyIcon = GetSystemMetrics(SM_CYICON);rect;(&rect);x
= (rect.Width() - cxIcon + 1) / 2;y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon.DrawIcon(x, y, m_hIcon);
}
{::OnPaint();
}
}
// The system calls this to obtain the cursor to
display while the user drags
// the minimized
window.CLab2_6Dlg::OnQueryDragIcon()
{(HCURSOR) m_hIcon;
}CLab2_6Dlg::OnButton1()
{s1,stroka;i,j=0,dop=0;str[25];*p=(CComboBox
*)GetDlgItem(IDC_COMBO1); (TRUE);=p->GetCurSel(); (i==LB_ERR) ("String
No SELECT!!!");
{>GetLBText(i, str);(str);k=strlen(str);(int
i1=0;i1<k;i1++)//обработка строки для выделения чисел.начало
{((str[i1]=='+' || str[i1]=='-') &&
('0'<=str[i1+1] && str[i1+1]<='9')) {stroka=stroka+"
"+str[i1];dop=1;}(('a'<=str[i1] && str[i1]<='z') ||
('A'<=str[i1] && str[i1]<='Z')) dop=0;('0'<=str[i1] &&
str[i1]<='9' && (dop==1)) stroka=stroka+str[i1];
}//обработка строки для выделения
чисел.конец.Format("Iz stroki %d. Podstroka 4isla(4isel):
%s%c%c",i+1,stroka,13,10);//вывод результата_b=m_b+s1;
}(FALSE);
} CLab2_6Dlg::OnButton2()
{(TRUE);_c.AddString(m_a);_a="";(FALSE);
}CLab2_6Dlg::OnButton3()
{ UpdateData(TRUE);_c.ResetContent();
_b="";(FALSE);
}
. MDI-приложение. Работа с данными в архитектуре
«Документ/представление» («Document/view»)
Задание к лабораторной работе
Создать MDI-приложение для формирования и
просмотра данных из файла в соответствии с индивидуальным заданием.
Требования для создаваемого приложения.
1. Управление
заданием имени файла, его открытием или созданием и т.п. выполняется через
команды меню или кнопки панели инструментов.
2. Просмотр
загруженных данных из файла, а также формируемых в приложении данных
выполняется в диалоговом окне с использованием элемента управления Listbox. В
этом списке отображается либо все данные, либо данные, формируемые в
соответствии с функцией, определенной в индивидуальном задании. Порядок вывода
управляется с помощью кнопок. Исходно выводится полный список.
3. Формирование
данных в приложении осуществляется в другом диалоговом окне с использованием
элементов управления Combobox и Edit.
4. До
задания имени файла элементы меню и соответствующие кнопки управления открытием
и сохранением данных в файл должны быть не доступны.
5. После
задания имени файла все команды работы с файлом должны иметь место только для
этого файла.
6. Имя
заданного файла должно отображаться в строке статуса.
6. Создайте БД ателье головных уборов.
Ориентировочные данные: «Изделия», «Клиенты», «Квитанции».
Исходный код:
.cpp:
// var6.cpp : Defines the class
behaviors for the application.
//
#include "stdafx.h"
#include "var6.h"
#include "MainFrm.h"
#include "ChildFrm.h"
#include "var6Doc.h"
#include "var6View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVar6App
BEGIN_MESSAGE_MAP(CVar6App, CWinApp)
//{{AFX_MSG_MAP(CVar6App)_COMMAND(ID_APP_ABOUT,
OnAppAbout)
// NOTE - the ClassWizard will add and remove
mapping macros here.
// DO NOT EDIT what you see in these blocks of
generated code!
//}}AFX_MSG_MAP
// Standard file based document
commands_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)_COMMAND(ID_FILE_OPEN,
CWinApp::OnFileOpen)_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVar6App constructionApp::CVar6App()
{
// TODO: add construction code here,
// Place all significant initialization in
InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CVar6App objectApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CVar6App
initializationCVar6App::InitInstance()
{();
// Standard initialization
// If you are not using these features and wish
to reduce the size
// of your final executable, you should remove from
the following
// the specific initialization routines you do
not need.
#ifdef _AFXDLLdControls();// Call this when
using MFC in a shared DLL
#elsedControlsStatic();// Call this when linking
to MFC statically
#endif
// Change the registry key under
which our settings are stored.
// TODO: You should modify this string to be
something appropriate
// such as the name of your company or
organization.(_T("Local AppWizard-Generated Applications"));
LoadStdProfileSettings(); // Load
standard INI file options (including MRU)
// Register the application's
document templates. Document templates
// serve as the connection between documents,
frame windows and views.* pDocTemplate;= new
CMultiDocTemplate(_VAR6TYPE,_CLASS(CVar6Doc),_CLASS(CChildFrame), // custom MDI
child frame_CLASS(CVar6View));(pDocTemplate);
// create main MDI Frame window* pMainFrame =
new CMainFrame;(!pMainFrame->LoadFrame(IDR_MAINFRAME))FALSE;_pMainWnd =
pMainFrame;
// Parse command line for standard
shell commands, DDE, file open
CCommandLineInfo cmdInfo;
if (cmdInfo.m_nShellCommand ==
CCommandLineInfo::FileNew)
{.m_nShellCommand =
CCommandLineInfo::FileNothing;
}
ParseCommandLine(cmdInfo);
// Dispatch commands specified on
the command line
if (!ProcessShellCommand(cmdInfo))FALSE;
// The main window has been
initialized, so show and update it.
pMainFrame->ShowWindow(m_nCmdShow);>UpdateWindow();TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App AboutCAboutDlg
: public CDialog
{:();
// Dialog Data
//{{AFX_DATA(CAboutDlg){ IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function
overrides
//{{AFX_VIRTUAL(CAboutDlg):void
DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation:
//{{AFX_MSG(CAboutDlg)
// No message handlers
//}}AFX_MSG_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() :
CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void
CAboutDlg::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,
CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP_MESSAGE_MAP()
// App command to run the dialog
void CVar6App::OnAppAbout()
{aboutDlg;.DoModal();
}
/////////////////////////////////////////////////////////////////////////////
// CVar6App message handlers
Var6Doc.cpp:
// var6Doc.cpp : implementation of
the CVar6Doc class
//
#include "stdafx.h"
#include "var6.h"
#include "var6Doc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVar6Doc
IMPLEMENT_DYNCREATE(CVar6Doc,
CDocument)_MESSAGE_MAP(CVar6Doc, CDocument)
//{{AFX_MSG_MAP(CVar6Doc)
// NOTE - the ClassWizard will add and remove
mapping macros here.
// DO NOT EDIT what you see in these blocks of
generated code!
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVar6Doc
construction/destructionDoc::CVar6Doc()
{
// TODO: add one-time construction code here
}Doc::~CVar6Doc()
{
}CVar6Doc::OnNewDocument()
{(!CDocument::OnNewDocument())FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CVar6Doc serialization
void
CVar6Doc::Serialize(CArchive& ar)
{.Serialize(ar);
}
/////////////////////////////////////////////////////////////////////////////
// CVar6Doc diagnostics
#ifdef _DEBUGCVar6Doc::AssertValid() const
}
void
CVar6Doc::Dump(CDumpContext& dc) const
{::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CVar6Doc commands
Var6Doc.h
// var6Doc.h : interface of the
CVar6Doc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_)
#define
AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000CVar6Doc : public
CDocument
{: // create from serialization onlyDoc();_DYNCREATE(CVar6Doc)
// Attributes:list;
// Operations:
// Overrides
// ClassWizard generated virtual function
overrides
//{{AFX_VIRTUAL(CVar6Doc):BOOL
OnNewDocument();void Serialize(CArchive& ar);
//}}AFX_VIRTUAL
// Implementation:~CVar6Doc();
#ifdef _DEBUGvoid AssertValid() const;void
Dump(CDumpContext& dc) const;
#endif:
// Generated message map functions:
//{{AFX_MSG(CVar6Doc)
// NOTE - the ClassWizard will add and remove
member functions here.
// DO NOT EDIT what you see in these blocks of generated
code !
//}}AFX_MSG_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional
declarations immediately before the previous line.
#endif //
!defined(AFX_VAR6DOC_H__EFC4D7BA_2FBE_4FF4_ACCD_8909E8A7459B__INCLUDED_)view.cpp:
// var6View.cpp : implementation of
the CVar6View class
//
#include "stdafx.h"
#include "var6.h"
#include "var6Doc.h"
#include "var6View.h"
#include "MainFrm.h"
#include "ProductDlg.h"
#include "ClientDlg.h"
#include "TicketDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILEchar THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CVar6View
IMPLEMENT_DYNCREATE(CVar6View,
CFormView)_MESSAGE_MAP(CVar6View, CFormView)
//{{AFX_MSG_MAP(CVar6View)_BN_CLICKED(IDC_ADD,
OnAdd)_COMMAND(ID_BUTTON_ADD, OnAdd)_COMMAND(ID_BUTTON_DELETE,
OnDelete)_BN_CLICKED(IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CVar6View
construction/destructionView::CVar6View()
: CFormView(CVar6View::IDD)
{
//{{AFX_DATA_INIT(CVar6View)
// NOTE: the ClassWizard will add member
initialization here
//}}AFX_DATA_INIT
// TODO: add construction code here
}View::~CVar6View()
{
}
void
CVar6View::DoDataExchange(CDataExchange* pDX)
{::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CVar6View)_Control(pDX,
IDC_LIST1, m_l);
//}}AFX_DATA_MAP
}
BOOL CVar6View::PreCreateWindow(CREATESTRUCT&
cs)
{
// TODO: Modify the Window class or styles here
by modifying
// the CREATESTRUCT
csCFormView::PreCreateWindow(cs);
}CVar6View::OnInitialUpdate()
{::OnInitialUpdate();();Doc* pDoc =
GetDocument();.Copy(pDoc->list);_l.ResetContent();(int i=0;
i<list.GetSize(); i++)
{_l.InsertString(i,list.GetAt(i));
}
//CMainFrame *pFrame =
(CMainFrame*)AfxGetApp()->m_pMainWnd->GetActiveWindow();
//pFrame->SetSbText(pDoc->GetTitle());
}
/////////////////////////////////////////////////////////////////////////////
// CVar6View diagnostics
#ifdef _DEBUGCVar6View::AssertValid() const
{::AssertValid();
}
void
CVar6View::Dump(CDumpContext& dc) const
{::Dump(dc);
}
CVar6Doc* CVar6View::GetDocument()
// non-debug version is inline
{(m_pDocument->IsKindOf(RUNTIME_CLASS(CVar6Doc)));(CVar6Doc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CVar6View message handlersCVar6View::OnAdd()
{
// TODO: Add your control notification handler
code hereDoc* pDoc = GetDocument();(pDoc->GetTitle() ==
"Products")
{productDlg;.DoModal();((productDlg.m_productname
!= "") && (productDlg.m_productcena != ""))
{>list.Add("Изделие: " +
productDlg.m_productname + ", Цена:" +
productDlg.m_productcena);>SetModifiedFlag(TRUE);
}
}(pDoc->GetTitle() == "Clients")
{clientDlg;.DoModal();(clientDlg.m_name !=
"")
{>list.Add(clientDlg.m_name);>SetModifiedFlag(TRUE);
}
}(pDoc->GetTitle() == "Tickets")
{ticketDlg;.DoModal();
if ((ticketDlg.m_client !=
"") && (ticketDlg.m_product != ""))
{>list.Add("Клиент: " +
ticketDlg.m_client + ", " +
ticketDlg.m_product);>SetModifiedFlag(TRUE);
}
}();
}CVar6View::OnDelete()
{
// TODO: Add your control notification handler
code hereDoc* pDoc = GetDocument();index = m_l.GetCurSel();(index >= 0)
{>list.RemoveAt(index,
1);>SetModifiedFlag(TRUE);
}();
}
Var6View.h
// var6View.h : interface of the
CVar6View class
//
/////////////////////////////////////////////////////////////////////////////
#if
!defined(AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_)
#define
AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000CVar6View : public
CFormView
{: // create from serialization
onlyView();_DYNCREATE(CVar6View):
//{{AFX_DATA(CVar6View){ IDD = IDD_VAR6_FORM
};_l;
//}}AFX_DATA
// Attributes:Doc* GetDocument();list;
// Operations:
// Overrides
// ClassWizard generated virtual function
overrides
//{{AFX_VIRTUAL(CVar6View):BOOL
PreCreateWindow(CREATESTRUCT& cs);:void DoDataExchange(CDataExchange* pDX);
// DDX/DDV supportvoid OnInitialUpdate(); // called first time after construct
//}}AFX_VIRTUAL
// Implementation:~CVar6View();
#ifdef _DEBUGvoid AssertValid() const;void
Dump(CDumpContext& dc) const;
#endif:
// Generated message map functions:
//{{AFX_MSG(CVar6View)_msg void OnAdd();_msg
void OnDelete();
//}}AFX_MSG_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in
var6View.cpp
inline CVar6Doc* CVar6View::GetDocument()
{ return (CVar6Doc*)m_pDocument; }
#endif
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional
declarations immediately before the previous line.
#endif //
!defined(AFX_VAR6VIEW_H__E7C3E0C9_B192_410D_A7AC_F227B9013406__INCLUDED_)