Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по СВЧ 2010.doc
Скачиваний:
0
Добавлен:
04.08.2019
Размер:
274.43 Кб
Скачать

3.3 Ресурсы

В программе разработаны и используются следующие ресурсы:

  • Кнопки панели инструментов (рисунок 4). Имеет идентификатор IDB_BITMAP3.

Рисунок 4 – Панель инструментов

  • Диалоговая панель «О программе». Имеет идентификатор IDD_ABOUT. Вызывается при выборе пункта меню «Справка/О программа». Обработка вызова происходит в сообщении WM_COMMAND:

case WM_COMMAND:

{

switch (LOWORD(wParam))

{

case IDC_HELP_ABOUT:

{

DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUT), hwnd, (DLGPROC)DlgAbout) ;

break ;

}

}

break ;

}

В оконной функции диалоговой панели DlgAbout() обрабатывается одно сообщение WM_LBUTTONDOWN. Оно возникает при щелчке левой клавишей мыши внутри рабочей области окна и приводит к его закрытию. Программный код оконной функции представлен ниже.

INT_PTR DlgAbout(HWND hDlgWnd,UINT DlgMessage,WPARAM wParam,LPARAM lParam)

{

switch (DlgMessage)

{

case WM_LBUTTONDOWN:

{

EndDialog(hDlgWnd, true) ;

return true ;

}

}

return false ;

}

Рисунок 5 – Диалоговое окно «О программе»

  • Диалоговая панель «Скорость» (рисунок 6). Имеет идентификатор IDD_DIALOG1. Вызывается при выборе пункта меню «Рисование/Скорость». Обработка вызова происходит в сообщении WM_COMMAND:

case WM_COMMAND:

{

switch (LOWORD(wParam))

{

case IDC_HELP_ABOUT:

{

DialogBox(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, (DLGPROC)DlgSpeed) ;

break ;

}

}

break ;

}

Здесь также следует описать оконную функцию данного диалогового окна.

Рисунок 6 – Диалоговая панель «Скорость»

  • Иконка для программы (рисунок 7). Имеет идентификатор IDI_ICON1.

Рисунок 7 – Программная иконка

  • Клавиши-акселераторы. Акселераторы создаются в сообщении WM_CREATE, путем вызова пользовательской функции CreateAcceleratorsTable(). Код функции представлен ниже.

HACCEL CreateAcceleratorsTable()

{

ACCEL Accelerators[14];

Accelerators[0].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[0].key = '1' ;

Accelerators[0].cmd = IDC_PARAM_THICK_A ;

Accelerators[1].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[1].key = '2' ;

Accelerators[1].cmd = IDC_PARAM_THICK_B ;

Accelerators[2].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[2].key = '3' ;

Accelerators[2].cmd = IDC_PARAM_THICK_C ;

Accelerators[3].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[3].key = '4' ;

Accelerators[3].cmd = IDC_PARAM_THICK_D ;

Accelerators[4].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[4].key = 'Q' ;

Accelerators[4].cmd = IDC_PARAM_GRADE_A ;

Accelerators[5].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[5].key = 'W' ;

Accelerators[5].cmd = IDC_PARAM_GRADE_B ;

Accelerators[6].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[6].key = 'E' ;

Accelerators[6].cmd = IDC_PARAM_GRADE_C ;

Accelerators[7].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[7].key = 'R' ;

Accelerators[7].cmd = IDC_PARAM_GRADE_D ;

Accelerators[8].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[8].key = 'T' ;

Accelerators[8].cmd = IDC_PARAM_GRADE_E ;

Accelerators[9].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[9].key = 'C' ;

Accelerators[9].cmd = IDC_PARAM_COLOR ;

Accelerators[10].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[10].key = 'I' ;

Accelerators[10].cmd = IDC_DRAW_A ;

Accelerators[11].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[11].key = 'O' ;

Accelerators[11].cmd = IDC_DRAW_B ;

Accelerators[12].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[12].key = 'A' ;

Accelerators[12].cmd = IDC_DRAW_ANIMATE;

Accelerators[13].fVirt = FCONTROL | FVIRTKEY ;

Accelerators[13].key = 'X' ;

Accelerators[13].cmd = IDC_CAP_EXIT ;

return CreateAcceleratorTable(Accelerators,14) ;

}

Как видно из кода создаются 14 клавиш-акселераторов. Все они работают в сочетании в с клавишей CTRL. Для задания клавиш используется их виртуальный код, о чем говорит константа FVIRTKEY. Каждая клавиша связана с пунктом меню, чей идентификатор указан в поле cmd.