Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОСОБИЕ СозданиеWindowsПриложений.doc
Скачиваний:
20
Добавлен:
01.03.2016
Размер:
3.35 Mб
Скачать
      1. Организовать ввод данных с применением меню и пользовательского диалогового окна

В проект (WinStandardTemplateIO), созданный на базе шаблона Windows-приложения (тип Simple), внести изменения для получения типового шаблона ТШП и сохранить. Создать меню с двумя пунктами ВВОД (подпункт Ввести) и ВЫВОД (подпункт Вывести). По подпункту Ввести инициализировать диалоговое окно (с окнами редактирования, подсказками, кнопками), предназначенное для задания исходных данных. По подпункту Вывести производить вывод ранее введенных значений. Результаты привести в ОТЧЕТЕ. Примерный вид диалогового окна приведен ниже

ПОРЯДОК (СХЕМА) ВЫПОЛНЕНИЯ ЗАДАЧИ.

1. Создать ресурсный файл и подключить его к проекту.

2. Добавить, настроить и присоединить к приложению ресурс – меню.

3. Настроить обработку событий – выбор пункта меню (в свойствах пунктов найти идентификаторы пунктов, например ID_MENUITEM40001, ID_MENUITEM40007) путем соответствующих изменений функции WndProc (…)

switch (messg)

{

case WM_COMMAND:

switch (wParam)

{

case ID_MENUITEM40001:

……………….

case ID_MENUITEM40007:

………………….

default:

…………………

}

case WM_PAINT:

…………………..

case WM_DESTROY:

……………………

default:

…………………..

} .

  1. Добавить, настроить и присоединить к приложению ресурс – диалоговое окно (например, с ID = IDD_DIALOG1, с окошками редактирования IDC_EDIT1 - IDC_EDIT3). Описать переменную-дескриптор (HINSTANCE hInst) приложения как глобальную переменную, чтобы обеспечить доступность к ней и за пределами WinMain(…).

  2. Описать программу обработчик – функцию диалогового окна и ее прототип

LRESULT CALLBACK TO_PROCESS_DIALOG_BOX(HWND hDlg, UINT message,

WPARAM wParam, LPARAM lParam)

{

switch (message)

{

case WM_INITDIALOG:

return FALSE;

case WM_COMMAND:

switch (wParam)

{

case IDOK:

EndDialog(hDlg,TRUE);

break;

case IDCANCEL:

EndDialog(hDlg,FALSE);

break;

default:

return FALSE;

}

break;

default:

return FALSE;

}

return TRUE;

}; .

  1. Инициализировать диалоговое окно, вставив вызов-инициализацию окна в пользовательскую секцию функции WndProc(…)

DialogBox(hInst, (LPCTSTR)IDD_DIALOG1, hWnd, (DLGPROC) TO_PROCESS_DIALOG_BOX); .

  1. Компилировать и наблюдать работу меню и окна.

  2. Настроить ввод данных на примере строковых (для окошка редактирования, например, с именем IDC_EDIT1). Описать вводимую строку как глобальную переменную, например char InputString [80];. В секцию case IDOK: функции TO_PROCESS_DIALOG_BOX() вставить ввод команду

GetDlgItemText(hDlg,IDC_EDIT1, InputString,15); .

  1. Для контроля результатов ввода в секцию реакции на выбор пункта меню для вывода данных (например, case ID_MENUITEM40007: функции WndProc(…) ) вставить вывод команду вывода, например MessageBox (hWnd, InputString, "СТРОКА ВВОДА", MB_OK); .

  2. Аналогичным образом, используя библиотечные функции [см. ФункцииВводаВывода], настроить ввод-вывод с использованием остальных окошек редактирования.