Большая техническая энциклопедия
2 3 8 9
U
А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я
ДА ДВ ДЕ ДИ ДЛ ДН ДО ДР ДУ ДЫ

Добавленный код

 
Добавленный код вызывает функцию CWnd: : HideCaret, чтобы сделать курсор невидимым. После вывода текста и перемещения курсора он вызывает функцию CWnd: : ShowCaret, чтобы снова сделать курсор видимым. Это делается потому, что запись в окно при видимом курсоре может вызывать искажение экрана в позиции курсора. Обратите внимание: вы не должны скрывать курсор при рисовании функцией OnDraw, потому что Windows автоматически скрывает курсор до вызова этой функции и восстанавливает после возврата из нее. По той же причине не нужно скрывать курсор в функции OnPaint, которая рисует в окне, не являющемся окном представления. Поэтому функцию OnDraw не нужно изменять.
Добавленный код напоминает код отображения стандартного диалогового окна в программе FontDemo. Однако вместо создания экземпляра класса диалогового окна функция OnTextFormat создает экземпляр класса CPropertySheet. Этот объект управляет отображением диалогового окна с вкладками. Затем функция OnTextFormat создает экземпляры всех классов, порождаемых от класса CPropertyPage и сгенерированных мастером ClassWizard. Каждый из этих объектов связан с одним из разработанных шаблонов диалогового окна и управляет определенной страницей. Функция OnTextFormat вызывает функцию AddPage для объектов класса CPropertySheet, чтобы добавить в окно новую страницу, и функцию DoModal класса CPropertySheet для создания и отображения диалогового окна с вкладками, содержащего страницу для каждого добавленного объекта.
Добавленный код сохраняет указатель на объект класса CLine, возвращенный функцией AddLine, а затем передает его как третий параметр в функцию update - AllViews. Функция UpdateAllViews класса CDocument имеет следующий формат.
Добавленный код начинается вызовом функции CStatusBar:: Create, создающей строку состояния. Массив IndicatorlDs, передаваемый функции CStatusBar:: Setlndicators, задает идентификатор каждого поля строки состояния.
В добавленном коде вызывается функция CMiniDrawDoc: : GetNumLines, позволяющая определить количество линий, сохраненных объектом документа.
В добавленном коде создается экземпляр класса диалогового окна CFormat. Для модального диалогового окна этот объект обычно определяется как локальная переменная, удаляемая сразу после завершении функции, в которой она определена.
Для получения индекса последней линии в добавленном коде сначала вызывается функция GetUpperBound класса СОЬАггау. Затем с целью получения указателя на объект класса CLine для последней линии вызывается функция CTypedPtrArray: : GetAt, а для удаления этого объекта используется оператор delete. И, наконец, вызывается функция UpdateAllViews, которая удаляет окно представления и вызывает функцию CMiniDrawView: : OnDraw. После этого обработчик OnDraw перерисовывает линии, оставшиеся в документе.
Если пользователь перемещает указатель мыши с нажатой кнопкой ( значение переменной m Dragging отлично от нуля), добавленный код завершает операцию рисования и строит постоянную линию. В частности, выполняются следующие действия.
Листинги ( 9.1 - 9.8), приведенные далее в этой главе, содержат полный текст всех исходных файлов программы WinGreet, включая и добавленный код.
Если фрагмент программы, выполняющий отображение окна, отличен от функции OnDraw, необходимо получить объект контекста устройства для окна представления. В добавленном коде это не используется.
Функции OnUpdateEditClearAll передается указатель на объект класса CGmdUl. Добавленный код вызывает функцию Enable класса CCmdUl. Она делает доступной команду меню Delete All, если документ содержит хотя бы одну линию. В противном случае блокирует команду, которая отображается затененной серым цветом, и пользователь не может ее выбрать. Таким образом, функцию OnEditclearAll нельзя вызвать, если документ пуст.
 
Loading
на заглавную 10 самыхСловариО сайтеОбратная связь к началу страницы

© 2008 - 2014
словарь online
словарь
одноклассники
XHTML | CSS
Лицензиар ngpedia.ru
1.8.11