|
Если выделенным оказывается непосредственно один трек, то пункт главного меню “Правка”→“удалить” вызывает запрос, обращенный к пользователю, о подтверждении его действий по удалению трека. В запросе у пользователя имеется 2 варианта ответа:
- OK – подтверждает возможность удаления трека;
- Cancel – отменяет работу по удалению трека.
Рисунок 21 – предупреждение “Данные трека будут безвозвратно утеряны!!! Вы уверены?”
5.8 Вид
В программе имеется пункт меню “вид”. Он позволяет назначать внешний вид графического списка. Имеются следующие варианты вида:
- большие значки
- малые значки
- список
- таблица
На панели инструментов имеется дублирующие кнопки данной функции. На рисунке 22 показаны возможные виды графического списка.
Рисунок 22 – возможные виды графического списка
5.9 О программе
Для получения информации и версии продукта и о его разработчиках следует обратиться к пункту “Помощь”→“ О программе”. После выбора этого пункта на экране появиться сообщение, изображенное на рисунке 23.
Рисунок 23 – отчет “ О программе ”
5.10 Выход из программы
Выход из программ можно осуществить путем выбора пункта главного меню “Файл”→“Выход”.
Также выход осуществляется нажатием кнопки “X” в заголовке главного окна приложения.
Рисунок 24 – кнопка выхода в заголовке главного окна приложения
6. Тестирование программы
Для тестирования программы необходимо проверить ряд функций программы:
- создание нового документа;
- сохранение существующего документа;
- открытие документа;
- наполнение документа.
Все эти действия можно объединить в группу и проверить одновременно. Для этого достаточно составить один сценарий, в котором будут следующие действия:
- запуск программы;
- создание нового документа;
- наполнение документа;
- сохранение документа;
- выход из программы;
- запуск программы;
- открытие документа.
Ниже приводятся описанные действия.
1. запуск программы: После запуска программы, на экране должно отобразиться главное окно программы, изображенное на рисунке 3.
2. создание нового документа: После запуска программы можно приступить к созданию нового документа. Это можно сделать при помощи:
- пункта главного меню “Файл”→“Новый” либо аналогичной кнопкой в панели инструментов;
- ничего не делать – при запуске изначально происходит работа с новой коллекцией.
3. наполнение документа: Для наполнения документа следует добавить в коллекцию диски и треки для них.
Для добавления новых дисков нужно выполнить следующие действия:
- в древовидной структуре выделить всю коллекцию;
- посредством пункта главного меню “Правка”→“добавить” вызвать диалог “добавление диска”, изображенного на рисунке 13;
- в поле “группа” диалога вписать название “Ария”;
- в поле “название альбома” диалога вписать название “Диск 1”;
- нажать кнопку “добавить”;
- должна произойти проверка введенной информации на допустимость введенных значений, добавление данных и вывестись отчет “Данные добавлены”, изображенный на рисунке 15 (диалог не должен закрыться т.к. он предполагает множественное добавление информации);
- в поле “группа” диалога вписать название “Ария”;
- в поле “название альбома” диалога вписать название “Диск 2”;
- нажать кнопку “добавить”;
- должна произойти проверка введенной информации на допустимость введенных значений, добавление дынных и вывестись отчет “Данные добавлены”, изображенный на рисунке 15;
- после этого следует нажать на кнопку “отмена”, произойдет выход из диалога;
- после этих действий в древовидной структуре появятся два новых узла: “Ария: Диск 1” и “Ария: Диск 2” корнем которых станет “коллекция”;
Для добавления новых треков к дискам нужно выполнить следующие действия:
1) в древовидной структуре выделить узел “Ария: Диск 1”;
2) посредством пункта главного меню “Правка”→“добавить” вызвать диалог “добавление трека”, изображенного на рисунке 16;
a) в поле “название трека” диалога вписать название “Трек X” (вместо “X” в первой итерации записать “1”);
b) в поле “исполнитель” диалога вписать имя “Валерий Кипелов”;
c) в поле “дата добавления” диалога вписать текущую дату;
d) нажать кнопку “добавить”;
e) должна произойти проверка введенной информации на допустимость введенных значений, добавление данных и вывестись отчет “Данные добавлены”, изображенный на рисунке 15 (диалог не должен закрыться т.к. он предполагает множественное добавление информации);
3) выполнить многократное выполнение пунктов a, b, c и d с получение результата из пункта e в количестве четырех итераций с начальным значением 2, в качестве данных брать те же значения изменяя “X” на номер итерации.
4) в древовидной структуре выделить узел “Ария: Диск 2”;
5) выполнить 2 и 3 пункты.
В результате всех действий получим пример, изображенный на рисунке 7.
4. сохранение документа: Для сохранения документа необходимо в главном меню выбрать пункт “Файл”→“Сохранить как” либо “Файл”→“Сохранить”. Кнопка с аналогичной функциональностью есть и в панели инструментов. После выбора пункта сохранения вызывается одноименный диалог, который позволяет задать новое имя документа и/или месторасположение. Его изображение показано на рисунке 9. В диалоге следует задать новое имя документа и его месторасположение и нажать на кнопку “Сохранить”.
5. выход из программы: Выход из программ можно осуществить путем выбора пункта главного меню “Файл”→“Выход”. Также выход осуществляется нажатием кнопки “X” в заголовке главного окна приложения.
6. запуск программы: смотреть действие 1.
7. открытие документа: Для открытия документа следует выбрать пункт главного меню “Файл”→“Открыть” либо воспользоваться аналогичной кнопкой в панели инструментов. В результате всех действий должен получиться результат, как и в “3. наполнение документа ”, который изображен на рисунке 7.
Заключение
Проделав значительную работу я изучил возможности работы с winapi (и в частности способы манипулирования данными в элементах управления). Изучил механизмы создания пользовательских классов и принципы наследования в языке C++.
Литература
- MSDN Library - техническая справка для разработчиков программного обеспечения. - MicroSoft Corp., 2004.
- Е. Демидович - «Основы алгоритмизации и программирования на си». - Бестпринт, 2003.
- Страуструп - «Язык программирования C++». - Бином, 2004.
Приложение
A Листинг программы
Исходные тексты
#include "includes.h"
#include "main.h"
#define WX 600
#define WY 300
#define COLOR RGB(0xff,0xff,0xff)
#define WIN_STYLE WS_OVERLAPPED|WS_SYSMENU|WS_CAPTION|WS_BORDER|WS_MINIMIZEBOX
#define Error_title "Error"
#define AplicationTitle "Картотека дисков"
#define ClassName "MY_CLASS"
HINSTANCE ghInst;
/* ############################### */
/* ### ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ### */
/* ############################### */
char buf[10]; char* toString(int value,int radix=10){
itoa(value,buf,radix);
return buf;};
/* ######################################### */
/* ### ДИАЛОГИ - ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ ### */
/* ######################################### */
bool getFileDlg(HWND hWnd,char *name,char *mask,int mask_size=0){
char szF[1024]="";
OPENFILENAME ofn;
memset(&ofn,0,sizeof(OPENFILENAME));
ofn.lStructSize=sizeof(OPENFILENAME);
ofn.hwndOwner=hWnd;
ofn.lpstrFile=szF;
ofn.nMaxFile=sizeof(szF);
ofn.lpstrFilter=mask;
ofn.nFilterIndex=2;
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle=0;
ofn.lpstrInitialDir=NULL;
ofn.Flags=OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn)==TRUE){
sprintf(name,"%s",ofn.lpstrFile);
return 1;}
При использовании материалов активная ссылка на источник обязательна.