Программа "Меню" и ее краткая характеристика, страница 2

                                              Zero.Swen[i].risovat = 0;

                                              Zero.Swen[i].popal_m = 0;

                                       }

                                 }

                                 break;

                          }

                          InvalidateRect(hWnd, NULL, TRUE);// вызвали подпрограмму рисования WM_PAINT

                    }

                    break;

             case WM_SIZE:// Изменение размеров окна

                    {

                          // Изменение пока тоже не понадобилось

                    }

             default:

                    return DefWindowProc(hWnd, message, wParam, lParam);

       }

       return 0;

}

Краткая характеристика программы:

  1. Программа универсальна, т.е. в параметрах

CountStr;

// массив под число подменю в 1-ом, 2-ом, ..., CountStr-ом меню

Count[CountStr];

// массивы под число подменю в подменю главного меню

LastSubCount1[14]; // содержится номер подменю, в котором должно вылезать меню

LastSubCount2[14]; // количество вылезающих подменю

// массив, который содержит количество подменю в i-ом главном меню, где должны вылезать менюшки

LastSub[CountStr];

можно указать соответствующие числа (что и делается в подпрограмме IdentificationMenuZero()) любого желаемого варианта, и новый вариант курсового проекта готов[2].

  1. Все более подробные комментарии можно увидеть в самом тексте программы.
  2. Можно выделить несколько важных “частей” программы:
    • Структуру классов меню (3 основных класса).
    • Инициализация (создание) всей структуры меню в целом (подпрограмма IdentificationMenuZero()).
    • Блок WM_PAINT – рисование меню.
    • Блок WM_LBUTTONDOWN – отслеживание поведения мыши при нажатии левой кнопки.
    • Блок WM_KEYDOWN – отслеживание нажатия клавиш клавиатуры.
  1. Управление:
    • Мышь (левая кнопка).
    • Клавиатура:

Ø  Горячие клавиши: F1, F2, F3, F4, F5, F6.

Ø  Стрелки клавиатуры.

Ø  Пробел – служит роль ввода/выбора (Enter).

Ø  F9 – начало работы клавиатуры, если еще ничего не было нажато. Т.е. если мы уже мышкой нажали в какое-то меню, то клавиатуру подключать клавишей F9 не нужно. А если мы хотим начинать выбор (“бегать по меню”) сразу клавиатурой, то необходимо нажать клавишу F9.

Ø  Esc – служит роль отмены всего, т.е. убирает все выбранные меню и отключает клавиатуру.

·  Совместимость мыши и клавиатуры. Таким образом, мы можем управлять меню и клавиатурой, и мышкой “одновременно”, а именно: бегая по каким-либо пунктам меню мышкой и выбирая что-либо, мы всегда можем продолжить выбор клавиатурой. И наоборот.

4.  Результаты и их анализ

Нажали F9, стрелкой влево выбрали Меню 4

Нажали Space, стрелкой вниз выбрали Меню 4.4

Кликнули левой кнопкой мыши в Меню 4.4, а затем стрелкой вниз выбрали 4.4.3

Кликнули левой кнопкой мыши в Меню 4.4.3 и получили сообщение о выборе соотв. Меню 4.4.3

Таким образом, показали работоспособность мыши и клавиатуры в сочетании друг с другом!

Исходные данные при проектировании:

v  Язык реализации – Microsoft Visual C++ 6.0.

v  Информация с citforum.ami.nstu.ru (разделы: программирование и ОС).

v  Книга “Программирование на Borland C++ для Windows”. Часть 1.



[1]Microsoft Visual C++ 6.0. Также использовалась “помощь” – MSDN Library – October 2001.

[2] При этом нужно только учесть, что в самой программе я делаю 2-а необходимых мне присваивания исходя из исходного варианта курсового проекта. Если вариант изменится (введут другие числа), то нужно просто отследить: то ли я присваиваю в начале работы или нет. Если нет, то посмотреть на вариант (исходные числа), и присвоить то, что нужно.