Основные программные блоки Windows-приложения. Часть 4.
Назад     Посмотреть правильные ответы

Тест на тему: Основные программные блоки Windows-приложения. Часть 4

В тесте 19 вопросов.

1). (из 19):    Схему обработки сообщений от клавиатуры можно представить следующим образом:

Выберите единственный правильный ответ

а) клавиатура- драйвер клавиатуры - системная очередь сообщений - очередь сообщений приложения - оконная процедура - цикл обработки сообщений;

б) клавиатура- драйвер клавиатуры - системная очередь сообщений - очередь сообщений приложения - цикл обработки сообщений - оконная процедура;

в) клавиатура- система прерываний - драйвер клавиатуры - системная очередь сообщений - очередь сообщений приложения - оконная процедура;

г) клавиатура - скан-код - драйвер клавиатуры - очередь сообщений приложения - цикл обработки сообщений - оконная процедура;

2). (из 19):    Функция SetFocus(HWND hWnd):

Выберите единственный правильный ответ

а) устанавливает фокус ввода на окно hWnd, возвращая дескриптор окна, которое располагало фокусом после вызова функции;

б) устанавливает фокус ввода на окно HWND, возвращая дескриптор окна, которое располагало фокусом до вызова функции;

в) возвращает дескриптор окна, имеющего фокус ввода в текущий момент;

г) устанавливает фокус ввода на окно hWnd, возвращая дескриптор окна, которое располагало фокусом до вызова функции;

3). (из 19):    Функция TranslateMessage():

Выберите несколько правильных ответов

а) извлекает очередное сообщение из очереди и помещает его в структурную переменную msg;

б) порождает сообщение WM_KEYDOUN;

в) преобразует аппаратные сообщения клавиатуры в символьные сообщения;

г) используется в цикле обработки сообщений;

4). (из 19):    Появление каретки в окне имеет смысл:

Выберите несколько правильных ответов

а) при обработке сообщения CREATE_CARET;

б) когда окно имеет фокус ввода;

в) после вызова функции ShowCaret;

г) при обработке сообщения WM_SETFOCUS;

5). (из 19):    Если в приложении создана пиктограмма с идентификатором IDI_FLAG в виде ресурса, то её загрузить можно:

Выберите единственный правильный ответ

а) полю hIcon структуры WNDCLASSEX присвоить дескриптор пиктограммы, полученный вызовом функции LoadIcon (hInstance, IDI_FLAG);

б) полю hIcon структуры WNDCLASSEX присвоить дескриптор пиктограммы, полученный вызовом функции LoadIcon(hInstance, MAKEINTRESOURCE(IDI_FLAG));

в) при обработке сообщения WM_CREATE вызвать функцию LoadIcon (hInstance, IDI_FLAG);

г) при обработке сообщения WM_CREATE вызвать функцию LoadIcon(hInstance, MAKEINTRESOURCE(IDI_FLAG));

6). (из 19):    Если при создании меню в виде ресурса в имени пункта меню встречается символ "амперсанд", то:

Выберите единственный правильный ответ

а) символ в имени, стоящий перед символом &, является мнемоническим;

б) следующий за симовлом & символ является мнемоническим символом;

в) это приводит к тому, что дальше в имени меню будет отображена горизонтальная разделительная линия между символами;

г) вместо имени пункта будет отображаться горизонтальная разделительная линия;

7). (из 19):    Функции DeleteMenu и RemoveMenu:

Выберите единственный правильный ответ

а) одинаковы по своему назначению и удаляют существующий пункт меню;

б) различаются тем, что функция DeleteMenu удаляет и уничтожает существующий пункт меню, а функция RemoveMenu только удаляет существующий пункт меню;

в) одинаковы по своему назначению, но используются в зависимости от версии Windows;

г) различаются тем, что функция RemoveMenu удаляет и уничтожает существующий пункт меню, а функция DeleteMenu только удаляет существующий пункт меню;

8). (из 19):    Функция CheckMenuItem:

Выберите единственный правильный ответ

а) изменяет статус пунктов меню;

б) управляет отметкой пунктов-флажков;

в) помещает отметку слева от пункта меню;

г) снимает отметку слева от пункта меню;

9). (из 19):    К сообщениям от меню можно отнести следующие:

Выберите несколько правильных ответов

а) WM_INITMENU;

б) WM_MENUCHECK;

в) WM_ INITMENUPOPUP;

г) WM_MENUSELECT;

д) WM_MENUCOMMAND;

е) WM_COMMAND;

10). (из 19):    Если контекстное меню создано в виде ресурса и имеет идентификатор IDR_MENU_MYCONTEXT, то загрузка контекстного меню осуществляется:

Выберите несколько правильных ответов

а) если полю lpszMenuName структуры WNDCLASSEX присвоить дескриптор контекстного меню, полученный вызовом функции LoadMenu(hInstance, MAKEINTRESOURCE(IDR_MENU_MYCONTEXT));

б) в блоке обработки сообщения WM_CREATE;

в) если полю lpszMenuName структуры WNDCLASSEX присвоить дескриптор контекстного меню, полученный вызовом макроса MAKEINTRESOURCE(IDR_MENU_MYCONTEXT);

г) при помощи функций LoadMenu и GetSubMenu;

11). (из 19):    Если контекстное меню создано в виде ресурса и имеет идентификатор IDR_MENU_MYCONTEXT, то вызов контекстного меню осуществляется:

Выберите несколько правильных ответов

а) при обработке сообщения WM_CONTEXTMENU;

б) при обработке сообщения WM_CREATEMENU;

в) при помощи вызова функции TrackPopupMenuЕх();

г) при помощи вызова функции TrackPopupMenuЕх(MAKEINTRESOURCE(IDR_MENU_MYCONTEXT));

12). (из 19):    Создание диалогового окна и работа с ним требуют выполнения следующей последовательности действий:

Выберите единственный правильный ответ

а) определение шаблона диалогового окна – определение диалоговой процедуры – вызов функции создания диалогового окна – обмен данными между и вызывающей функцией окна и диалоговой процедурой;

б) определение диалоговой процедуры - определение шаблона диалогового окна – вызов функции создания диалогового окна – обмен данными между диалоговой процедурой и вызывающей функцией окна;

в) определение шаблона диалогового окна – определение диалоговой процедуры – вызов функции создания диалогового окна – обмен данными между диалоговой процедурой и вызывающей функцией окна;

г) нет правильного ответа;

13). (из 19):    Отличия между оконной процедурой и диалоговой процедурой состоят в том, что:

Выберите несколько правильных ответов

а) если диалоговая процедура не обрабатывает какое-либо сообщение, то она вызывает DefWindowProc;

б) эти процедуры возвращают результат различного типа;

в) диалоговая процедура не обрабатывает сообщение WM_CREATE;

г) если диалоговая процедура не обрабатывает какое-либо сообщение, то она возвращает значение FALSE;

д) вместо обработки сообщения WM_PAINT диалоговая процедура обрабатывает сообщение WM_PAINTDIALOG;

14). (из 19):    Для вызова на экран модального диалогового окна необходимо:

Выберите единственный правильный ответ

а) полю hInstance структуры WNDCLASSEX присвоить дескриптор модального диалогового окна, полученный вызовом макроса MAKEINTRESOURCE;

б) вызвать функцию DialogBox;

в) при обработке сообщения WM_CREATE в оконной процедуре вызвать диалоговую процедуру;

г) нет правильного варианта;

15). (из 19):    Различия модального и немодального диалога состоят в следующем:

Выберите несколько правильных ответов

а) в создании вышеуказанных окон;

б) в обработке сообщения WM_PAINT;

в) в закрытии вышеуказанных окон;

г) в цикле обработки сообщений;

16). (из 19):    Период прерывания системного таймера обычно составляет:

Выберите единственный правильный ответ

а) не зависит от аппаратной платформы и всегда составляет 15 мс;

б) от 20 до 30 мс;

в) нет правильного варианта;

г) зависит от аппаратной платформы и обычно составляет около 15 мс;

17). (из 19):    Разрешение системного таймера можно получить с помощью функции:

Выберите единственный правильный ответ

а) GetSystemTime;

б) GetSystemTimeAdjustment;

в) GetTickCount;

г) по-моему правильного ответа нет;

18). (из 19):    Профилировка некоторого фрагмента кода программы это:

Выберите единственный правильный ответ

а) это когда в этом коде программы используется функция SetTimer;

б) никогда не слышал(а) о таком;

в) это когда некоторый фрагмент кода программы тестируют;

г) получение времени работы данного кода программы;

19). (из 19):    Разрешающая способность счётчика монитора производительности определяется:

Выберите единственный правильный ответ

а) его частотой, которая записывается в поле QuadPart структуры _LARGE_INTEGER;

б) разрешением системного таймера, которое можно узнать с помощью функции GetSystemTimeAdjustment;

в) с помощью функции QueryPerformanceCounter;

г) с помощью функции QueryPerformanceQuadPart;