Win_Dialog (1061359)
Текст из файла
Win_Dialog
-
Создадим диалоговое приложение: File / New / Project… ;
-
На вкладке «New Project» выбираем тип проекта Visual С++ / MFC;
-
Среди шаблонов (Templates) выбираем «MFC Application»;
-
В поле имени задаем «Win_Dialog»;
-
На вкладке «MFC Application Wizard – Win_Dialog» радиокнопкой задаем тип приложения «Dialog based», остальные параметры не меняем;
-
На следующей вкладке можно задать органы управления приложением: кнопки минимизации, максимизации, закрытия окна, системного меню. Здесь же можно задать текст заголовка окна;
-
После нажатия на кнопку «Finish» генерируется набор стандартных файлов, создается папка с проектом (Project) и областью (Solution);
-
Открываем просмотрщик ресурсов «Resource View – W-n_Dialog»;
-
Среди ресурсов выбираем диалоговую панель «IDD_WIN_DIALOG_DIALOG» и открываем ее. ВНИМАНИЕ. Надо убедиться, что в свойствах (Properties) задан русский язык;
-
После компиляции и редактирования создается образ диалового приложения, который может выполняться либо в режиме отладки (Debug), либо в режиме окончательной реализации (Release).
-
Окно приложения имеет вид:
Оно стандартно имеет три элемента: две кнопки и статическое поле с надписью TO DO …
-
Конфигурация среды программирования имеет вид:
Если кнопку в верхней строке окна положить горизонтально, то окно будет автоматически минимизироваться в ярлык вкладки. Из плавающего окна «Toolbox» на начальный шаблон диалога можно переносить стандартные элементы управления, двойной щелчок по элементу управления генерирует пустую функцию отклика в тексте программы, правой кнопкой мыши можно вызвать окно свойств (Properties) выбранного элемента и изменить их.
-
Поставим на диалоговое окно кнопку с заголовком «СТАРТ», сгенерируем функцию обработки сообщения о нажатии этой кнопки. Также сгенерируем функции для кнопок «Ok» и «Cancel» изменим статический текст.
-
При редактировании в тело функции вставим оператор:
MessageBoxA(0,"Все нормально","Сообщение", MB_OK);
-
Выполним программу.
-
*********************************************************************
-
Для подключения интерфейсной платы URC220 необходимо в папку с файлами проекта скопировать 4 файла: «urc220.h», «urc220.lib», «urcpipe.h», «urcpipe.lib», они лежат в отдельной папке «ФАЙЛЫ для подключения URC220».
-
Два заголовочных файла «urc220.h», «urcpipe.h» необходимо включить в текущий проект: Project / Add Existing Item…;
В начале программы вставим фрагмент, который создает объект urc класса CURC220 //**********************************************************************
//Мой код НАЧИНАЕТСЯ здесь
#include "urc220.h" // Подключение библиотеки для работы с устройством
#pragma comment(lib, "Winmm.lib")
CURC220 urc; // Объект для работы с устройством
int init_1_device(); // Прототип функции инициализации
int bit; // Номер светодиода
//Мой код ЗАКАНЧИВАЕТСЯ здесь
//**********************************************************************
Набрав в тексте программы имя объекта urc, и поставив точку, мы вызываем контекстную подсказку, в которой перечисляются функции-члены класса URC220.
-
В функцию обработки сообщения о нажатии кнопки «ПУСК» добавим фрагмент, в котором в цикле зажигаются и гасятся светодиоды:
//**********************************************************************
//Мой код НАЧИНАЕТСЯ здесь
if (init_1_device() != 0) return;
MessageBoxA(0,"Внимание! ЗАЖИГАЮ, для выхода жми ESC","Сообщение", MB_OK);
// цикл, чтобы сделать бегущий светодиодик
// будет работать пока не сработает любой из break'ов
while (1)
{
// устанавливаю значения портов вывода (в буфер на компьютере
for (int i = 0; i < 8; i++)
{
if (bit == i ) urc.DeviceSetOutput (i, 1);
else urc.DeviceSetOutput (i, 0);
}
bit++;
// всего светодиодов 8
if (bit >= 8) bit = 0;
// записываю установленные данные в плату (значения из буфера применяются к // плате)
// если устройство вдруг исчезнет, то прекращаю запись в него
if (!urc.DeviceWrite ()) break;
// проверяю - был ли нажат Esc
if (GetAsyncKeyState (VK_ESCAPE)) break;
// Жду 100 милисекунд (не менее 4 милисекунд, иначе операция записи не
// успеет завершиться), ну и чтобы не быстро бегал светодиод
Sleep (100);
} //while (1)
//Мой код ЗАКАНЧИВАЕТСЯ здесь
//**********************************************************************
Инициализацию единственной интерфейсной платы оформим в виде отдельной функции init_1_device() для концентрации всех предварительных настроек и проверок в одном месте. Тело функции можно разместить либо в самом конце программы, либо в начале. Вызов функции инициализации можно разместить в обработчике нажатия на кнопку СТАРТ, или в функции инициализации ::OnInitDialog()
//*********************************************************************
//Мой код НАЧИНАЕТСЯ здесь
// Функция выводит на экран список устройств и
// возвращает номер выбранного пользователем устройства
// (начиная с "0", "-1" - ошибка)
int init_1_device()
{
// Обновляем список устройств
urc.UpdateDeviceList();
// Определяем количество устройств
ULONG device_count = 0;
urc.GetDeviceCount(&device_count);
// Если не подключено ни одного устройства, то
if(!device_count)
{
// Выводим сообщение и выходим
MessageBoxA(0,"Устройств URC220 не найдено","list_devices error", MB_OK);
return -1;
}
// Если подключено более одного устройства, то
if(device_count > 1)
{
MessageBoxA(0,"Устройство URC220 не одно","list_devices error", MB_OK); return -2;
}
// Если подключено всего одно устройство, то
// Сразу возвращаем его номер
else
{
// Определяем номер устройства,
// которое нужно открыть
int device_index = 0;
// Открываем выбранное усройство
if(!urc.Open(device_index))
{
// Сообщаем и выходим, если не получилось
MessageBoxA(0,"Соединение не выполнено","init_1_device", MB_OK);
return -3;
}
else
{
// Сообщаем об успешном соединении
MessageBoxA(0,"Соединение прошло успешно","init_1_device", MB_OK);
for(int j=0;j<8;j++)
urc.DeviceSetOutput(j, 0); // Гасим светодиоды
for(int j=0;j<4;j++)
urc.DeviceSetPWM(j, 0); // Обнуляем ШИМ
urc.DeviceWrite(); // Записываем данные в интерфейсную плату
}
return 0;
}
}
//Мой код ЗАКАНЧИВАЕТСЯ здесь
//*********************************************************************
-
Выполним программу.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.














