для чего нужен appwizard
AudioWizard — что это за программа и нужна ли она?
Приветствую друзья! Есть такие проги, которые создавались только для ограниченного количества устройств. Эти проги я называю фирменными — их создают производители для собственных устройств. Часто подобные проги малополезны, но некоторые — вполне несут пользу. Про одну такую прогу сегодня и пойдет речь.
Вот например вы купили ноутбук.. смартфон.. компьютер.. Включили — а там не только операционка, но и непонятные программы.. и часто это именно те фирменные, которые поставил производитель, чтобы вам было удобнее использовать устройство.
AudioWizard — что это такое?
Вообще название AudioWizard может быть общим для нескольких программ.
Поэтому сперва разберемся с названием:
Поэтому мы уже можем сделать мини-вывод:
AudioWizard — это что-то связанное с настройкой звука, например может быть частью фирменного ПО для звука, которое устанавливается вместе с драйверами.
Прога AudioWizard может выглядеть например так:
Как видите — маленькая панелька, окошко с доступом к функциям. Давайте разберем, какие функции мы видим? Смотрите:
Вполне возможно, что все эти режимы — просто пресеты (заготовки) эквалайзера. Эквалайзер — настройка для регулирования частот, от высоких до низких. Регулировка обычно производится при помощи ползунков.
То есть AudioWizard это может быть мини-программка для быстрого доступа к основным режимам звука. Чтобы вы не искали их там где-то в панелях управления. Не исключаю, что у этой проги может быть своя иконка в трее (в правом нижнем углу рабочего стола, там где значки).
Вот еще пример — прога AudioWizard, которая идет для игровых материнских плат серии Asus ROG:
Вообще ROG расшифровывается как Republic of Gamers и является игровым подразделением Asus, которое производит игровые ноуты, материнки, некоторые устройства — все заточено под игры.
Внешний вид наверно зависит от версии, вот например может быть и таким:
Функции те же, но оформление уже другое.
А вот просто нашел красивую картинку и решил поделиться ней с вами:
Удивительно, но если я правильно понимаю — есть версия даже под Андроид:
Как удалить AudioWizard?
Как удалить на телефоне — точно не скажу. Но возможно через стандартные приложения, хотя если у вас на телефоне есть рут-доступ, то конечно лучше использовать Titanium Backup.
Если у вас ПК, то удаляем стандартным способом:
Нужная прога может иметь название Realtek High Definition Audio Driver — это дрова, в состав которых может спокойно содержаться AudioWizard. Инфа взята с офф сайта Асус.
Где скачать AudioWizard?
Да, при проблемах — переустановка проги может реально помочь. У вас может стоять старая версия — а возможно уже доступна новая, в которой баги, ошибки уже исправлены и она не глючит.
Но где скачать последнюю версию AudioWizard? Давайте посмотрим на примере производителя Асуса. Если у вас материнка или ноут этой фирмы, то:
Название разделов на сайтах других производителей могут отличаться.
Внимание! На сайте Асус есть вопрос о том, что делать если не работает ROG AudioWizard. И там сказано что стоит переустановить. Но фишка в том, что пишется — чтобы переустановить, то удалите.. и указывается что именно — удалять нужно Realtek High Definition Audio Driver. Значит именно вот эта прога и может содержать в себе AudioWizard!
Заключение
Надеюсь информация помогла. Удачи и добра, до новых встреч!
AppWizard 1.1.0.2305
Основная информация о программе
AppWizard – бесплатная программа, которая позволяет быстро найти и установить на ПК любое программное обеспечение.
Если вы по каким-либо причинам не можете самостоятельно найти нужный софт, то данная программа решит эту проблему. Необходимо лишь запустить приложение, выбрать в каталоге нужное ПО и нажать на кнопку установки. Утилита поддерживает пакетную инсталляцию софта в фоновом режиме (так называемая «тихая» установка), а также позволяет выбрать разрядность приложений (32 или 64-бит) и место установки программ на жестком диске.
В каталоге AppWizard собрано более 4000 официальных релизов самых востребованных бесплатных программ, которые зачастую ни в чем не уступают аналогичным платным продуктам. При этом база софта регулярно обновляется и пополняется разработчиками. Все приложения тщательно проверяются антивирусами и полностью безопасны.
Нужное ПО можно найти по наименованию в поиске или тематическим категориям: «Безопасность» (VPN, антивирусы), «Интернет» (скачивание, браузеры, облачные сервисы, мессенджеры), «Мультимедиа» (аудио, видео, фото, графика), «Офис» (бизнес, органайзеры, работа с документами), «Разработка ПО», «Игры» (лаунчеры, утилиты) и «Система». Кроме того, для каждого приложения из каталога AppWizard указаны следующие данные: рейтинг, актуальный номер версии и редакции, точный размер файла, краткое описание функциональных возможностей и дополнительная информацию о достоинствах и недостатках. Последний параметр можно увидеть во всплывающем окне при наведении мышью.
Также стоит добавить, что программа работает в портативном режиме, без необходимости установки на компьютер.
Использование AppWizard для создания приложения с главной диалоговой панелью
Приложения, созданные на основе MFC, как правило, не имеют главной функции приложения WinMain. Функция WinMain скрыта от программиста внутри методов класса CWinApp. Каждое приложение должно иметь один объект класса, наследованного от базового класса CWinApp. Используя AppWizard, построим приложение, базирующееся на диалоговой панели.
При создании проекта с помощью этого средства необходимо ответить на ряд вопросов, которые и определяют тип и возможности создаваемого приложения.
После выбора типа приложения “Dialog based” появится следующая диалоговая панель, предназначенная для определения основных свойств приложения.
В этой панели можно будет указать, будет ли у создаваемого приложения информационная диалоговая панель, справочная подсистема, трехмерные органы управления, возможности использования технологии OLE и коммуникации с помощью протокола TCP/IP. Здесь же можно задать заголовок главной диалоговой панели.
На последней диалоговой панели можно задать имена для создаваемых системой AppWizard классов приложения.
После определения всех свойств приложения MFC AppWizard создаст проект, который можно сразу же оттранслировать и получить приложение, полностью готовое к запуску. После запуска приложения на экране появляется диалоговая панель.
Обратите внимание, что AppWizard создал файлы Dialog.cpp и DialogDlg.cpp, а также файлы Dialog.h и DialogDlg.h. Файл Dialog.cpp содержит описание методов для класса CDialogApp.
Для класса CDialogApp описан конструктор, не имеющий параметров. Этот конструктор используется в момент запуска приложения для создания объекта класса CDilogApp.
Кроме конструктора, в классе CDialogApp переопределяется метод InitInstance базового класса CWinApp. Каждый раз при запуске очередной копии приложения вызывается этот метод. Это единственный метод главного класса, который обязательно должен быть переопределен. Средство MFC AppWizard реализует переопределяемый метод InitInstance для различного типа пользовательского интерфейса (однооконный, многооконный, основанный на диалоге) по-разному.
В данном случае в этом методе создается диалоговая панель, которая и будет выполнять роль пользовательского интерфейса приложения. Для этого сначала создается объект dlg класса CDialogDlg, который управляет диалоговой панелью. Затем адрес этого объекта присваивается элементу данных m_pMainWnd главного класса приложения.
После этого вызывается метод DoModal для объекта dlg класса CDlg. Он создает диалоговую панель и отображает ее на экране. Значение, выдаваемое методом DoModal, можно использовать для того, чтобы проанализировать результат работы пользователя с диалоговой панелью.
В файле dialog.cpp объявляется глобальный объект главного класса приложения. CDialogApp theApp;
Именно с создания этого объекта и начинается работа приложения.
Объект класса CWinApp (или класса, наследуемого от него) входит во все приложения, созданные с использованием MFC AppWizard, вне зависимости от пользовательского интерфейса этого приложения.
Таблица сообщений класса CDialogApp, созданная средством AppWizard, состоит из макрокоманд BEGIN_MESSAGE_MAP и END_MESSAGE_MAP. Между ними располагаются макрокоманды, определяющие сообщения, обрабатываемые данным классом.
Необработанные сообщения передаются на обработку базовому классу CWinApp, так как он указан во втором параметре макрокоманды BEGIN_MESSAGE_MAP.
Глава 8. Приложение с однодокументным интерфейсом (использование
Рассмотрим проект однооконного приложение single, созданного с использованием средств MFC AppWizard. Пусть при его создании задавались следующие характеристики: приложение с однодокументным интерфейсом (SDI-приложение); возможность печати и предварительного просмотра документа; наличие панели управления (tool bar) и панели состояния (status bar); приложение не поддерживает ни технологию OLE, ни базу данных, ни сетевые технологии.
В состав проекта single входят следующие основные файлы (см. Приложение 2 ):
После построения проекта single и запуска полученного приложения на экране появляется главное окно приложения. Оно имеет меню, панели управления и состояния.
Ресурсы приложения
Приложение с однооконным интерфейсом, созданное средствами MFC AppWizard, имеет гораздо больше ресурсов, чем приложение, использующее в качестве главного окна приложения диалоговую панель. В нем определены не только диалоговые панели и таблица текстовых строк, но и пиктограмма, меню, панель управления и таблица акселераторов.
Шаблон меню. В ресурсах приложения определен только один шаблон меню, имеющий идентификатор IDR_MAINFRAME.
Когда пользователь выбирает пункт меню, операционная система передает командное сообщение главному окну приложения. Большая часть строк меню IDR_MAINFRAME имеет стандартные идентификаторы, описанные в библиотеке MFC. Некоторые из команд, соответствующих этим идентификаторам, полностью обрабатываются MFC.
Панель управления toolbar. Многие современные приложения, в том числе все приложения, имеющие оконный интерфейс и созданные с использованием средств MFC AppWizard, имеют панель управления. Эта панель располагается, как правило, ниже меню главного окна приложения и содержит ряд кнопок.
Идентификаторы кнопок панели управления соответствуют идентификаторам некоторых строк меню приложения. Поэтому эти строки дублируют соответствующие строки меню.
Образ кнопок панели управления расположен в файле toolbar.bmp, записанном в подкаталоге res каталога проекта. Файл же описания ресурсов приложения single.rc включает себя соответствующий ресурс.
Пиктограмма. В файле ресурсов приложения single определена пиктограмма, представляющая минимизированное приложение. Точно такая же пиктограмма используется всеми приложениями, построенными на основе MFC AppWizard, вне зависимости от типа их интерфейса с пользователем.
Ресурсы приложения содержат несколько блоков, описывающих таблицы текстовых строк. Рассмотрим их. Первый блок текстовых строк включает только одну текстовую строку, имеющую идентификатор IDR_MAINFRAME. В этой строке закодирована различная информация, относящаяся к типу документов приложения. Обычно для каждого типа документа приложения определена своя строка описания. Формирование этой строки выполняется MFC AppWizard на основании указанной при создании приложения информации.
Второй блок таблицы текстовых строк содержит строки с идентификаторами AFX_IDS_APP_TITLE и AFX_IDS_IDLEMESSAGE. Строка, имеющая идентификатор AFX_IDS_IDLEMESSAGE, отображается в панели состояния, когда приложение находится в ожидании.
Когда пользователь создает объект главного окна приложения, он может указать имя приложения. Если это имя не указано, то в качестве имени приложения используется строка, имеющая идентификатор AFX_IDS_APP_TITLE.
В третьем блоке текстовых строк определены несколько текстовых строк, имеющих стандартные идентификаторы. Эти строки используются для отображения различной информации в панели состояния.
Следующий большой блок текстовых строк содержит краткие описания каждой строки меню приложения. Идентификаторы этих строк соответствуют идентификаторам строк меню, которые они описывают:
Строки, описывающие меню, состоят из двух частей, разделенных символом перевода строки. Первая часть строки отображается в панели состояния, когда пользователь выбирает строки меню. Вторая часть строки содержит краткую подсказку, которая отображается, если поместить указатель курсора мыши на кнопки управляющей панели и подождать несколько секунд. Если такая подсказка не нужна, то вторую часть строки можно не приводить.
Последний большой блок текстовых строк содержит краткие описания каждой строки меню системного приложения. Идентификаторы этих строк соответствуют идентификаторам строк меню, которые они описывают:
Диалоговая панель. В ресурсах приложения определена только одна диалоговая панель с идентификатором IDD_ABOUTBOX. Она содержит краткую информацию о приложении и отображается на экране, когда пользователь выбирает из меню Help строку About:
Таблица акселераторов. Для того, чтобы ускорить доступ к строкам меню приложения, MFC AppWizard добавляет в файл ресурсов таблицу акселераторов. Когда пользователь нажимает комбинацию клавиш, представленную в таблице акселераторов, приложению поступает командное сообщение с соответствующим идентификатором.
Замечание. При внимательном изучении ресурсов приложения можно заметить, что 4 типа ресурса приложения имеют элементы с одинаковыми идентификаторами. Существует меню, строковый ресурс, таблица акселераторов и пиктограмма, которые имеют один и тот же идентификатор IDR_MAINFRAME.
Классы приложения
Тексты приложения single (см. Приложение 2), созданные MFC AppWizard подробно рассматриваться не будут, вместо этого будет дано описание отдельных классов, определенных в приложении, и их связь друг с другом.
MFC AppWizard создает для приложения, обладающего однооконным интерфейсом, четыре основных класса. Эти классы представляют основу любого однооконного приложения, созданного MFC AppWizard.
Главный класс приложения
Класс главного окна приложения
Класс документа приложения
Класс окна просмотра документа
Кроме этих основных классов создается класс CAboutDlg, наследованный от базового класса CDialog, который отвечает за диалоговую панель About.
Если при создании приложения определить возможность работы с базами данных или использование технологии OLE, то список классов приложения может стать шире.
Главный класс приложения
Главный класс приложения CSingleApp наследуется от базового класса CWinApp, а его определение и реализация находятся в файлах single.h и single.cpp.
Таблица сообщений класса. В последней строке определения класса CSingleDoc расположена макрокоманда DECLARE_MESSAGE_MAP(). Эта макрокоманда определена в файле afxwin.h, она добавляет к классу несколько элементов.
Так как в классе CSingleApp определена эта макрокоманда, то он может обрабатывать сообщения и имеет таблицу сообщений. Эта таблица расположена в файле single.cpp.
Кроме команды для обработки командного сообщения ID_APP_ABOUT, расположенного в блоке AFX_MSG_MAP, таблица содержит еще 3 макрокоманды, предназначенные для обработки командных сообщений с идентификаторами ID_FILE_NEW, ID_FILE_OPEN, ID_FILE_PRINT_SETUP. Эти команды поступают, когда пользователь выбирает из меню приложения строки с соответствующими идентификаторами. Для обработки этих командных сообщений вызываются методы класса CWinApp.
Главный объект приложения. В приложении создается всего один объект класса CSingleApp. Этот объект определяется как глобальный, поэтому его конструктор получает управление сразу же после запуска приложения:
Конструктор класса. Конструктор класса CSingleApp никаких действий не выполняет и состоит из пустого блока:
Можно в конструкторе класса разместить код для инициализации приложения, однако лучше для этого использовать метод InitInstance.
MFC AppWizard переопределяет метод InitInstance автоматически для приложений с любым пользовательским интерфейсом. Однако реализация этого метода может различаться для приложений с различным типом интерфейса.
Если разрабатывается приложение, основанное на однооконном или многооконном интерфейсе, то объект главного класса приложения управляет одним или несколькими объектами класса шаблона документа. Они, в свою очередь, управляют созданием документов. Один шаблон используется для всех документов данного типа. Так как однооконные приложения, как правило, работают только с документами одного типа, они используют только один шаблон документа.
Подготовленный объект передается методу ProccessShellCommand класса CWinApp для обработки. После успешной обработки командной строки этот метод возвращает ненулевое значение.
После успешной инициализации приложения и обработки командной строки метод InitInstance возвращает TRUE. Начинается обработка цикла сообщений.
Метод OnAppAbout. Кроме конструктора и метода IninInstance в главном классе приложения CSingleApp определен метод OnAppAbout. Он расположен в блоке AFX_MSG. Поэтому для работы с этим методом можно использовать ClassWizard.
Этот метод вызывается для обработки командного сообщения ID_APP_ABOUT. Это сообщение поступает в очередь приложения, когда пользователь выбирает из меню Help строку About. Он создает объект класса CAboutDlg, представляющий модальную диалоговую панель, и отображает ее на экране. Описание класса CAboutDlg, а также определение его методов содержится в файле single.cpp.
Класс документа
Этот класс является классом документа приложения. В качестве базового класса для него используется класс CDocument библиотеки MFC.
Для того, чтобы объекты любого класса, наследованного от базового класса CObject, в том числе и CSingleDoc, можно было создавать динамически, необходимо выполнить следующее:
MFC AppWizard автоматически выполняет все эти требования для класса документа приложения CSingleDoc, класса окна приложения CMainFrame и класса окна просмотра CSingleView.
Таблица сообщений класса. Макрокоманда IMPLEMENT_DYNCREATE размещается в файле реализации класса singleDoc.cpp. Обычно MFC AppWizard размещает эту макрокоманду непосредственно перед таблицей сообщений класса (если, конечно, данный класс обрабатывает сообщения).
Непосредственно после создания проекта таблица сообщений класса CSingleDoc не содержит обработчиков сообщений. Когда приложение будет разрабатываться дальше, программист может добавлять обработчики различных сообщений к классу CSingleDoc и другим классам приложения. Для добавления новых обработчиков сообщений, а также внесения других изменений в классы, следует использовать ClassWizard.
Конструктор и деструктор класса. Конструктор, подготовленный MFC AppWizard, содержит пустой блок. Можно поместить в него код инициализации для объектов класса.
Следует иметь в виду, что для приложений, построенных на основе однооконного интерфейса, объект класса документ создается всего один раз. Когда пользователь создает новый документ или открывает документ, уже записанный в файле, используется старый объект класса, представляющего документ.
Вместе с конструктором класса CSingleDoc, создается деструктор
CSingleDoc. Деструктор не содержит кода и представляет собой такую же заготовку, как и конструктор.
Методы OnNewDocument и Serialize. В классе CSingleDoc переопределены два виртуальных метода: OnNewDocument и Serialize. Виртуальный метод OnNewDocument определен в классе CDocument, от которого непосредственно наследуется класс CSingleDoc. А вот виртуальный метод Serialize определен в классе CObject. Цепочка наследования в этом случае длиннее.
Метод OnNewDocument вызывается, когда нужно создать новый документ для приложения. Если метод OnNewDocument переопределяется (в данном случае это делает MFC AppWizard), то сначала необходимо вызвать метод OnNewDocument базового класса и только затем можно выполнять инициализацию документа.
Большой интерес представляет метод Serialize. Он вызывается в тех случаях, когда нужно загрузить документ из файла на диске или, наоборот, записать его в файл. Метод Serialize вызывается, когда пользователь выбирает из меню File строки Open или Save.
В качестве параметра методу Serialize передается указатель на объект класса СArchive, связанный с файлом, в который надо записать или из которого надо прочитать документ.
Методы AssertValid и Dump. Класс CSingleDoc содержит переопределения еще двух виртуальных методов: AssertValid и Dump, входящих в базовый класс CObject.
Следует обратить внимание на то, что описание этих методов и их определение находится в блоке #ifdef _DEBUG. Поэтому эти методы используются только для отладочной версии приложения. При окончательном построении приложения эти методы не переопределяются.
К ласс окна просмотра документа
Следующим классом приложения single является класс окна просмотра документа CSingleView. Этот класс наследуется от базового класса CView библиотеки MFC. Определение и реализация этого класса находятся в файлах singleView.h и singleView.cpp.
Окно просмотра и связанный с ним класс окна просмотра документа создается шаблоном документа в процессе работы приложения. Поэтому необходимо, чтобы объекты класса CSingleView можно было создавать динамически.
Таблица сообщений класса. Непосредственно перед таблицей сообщений класса CSingleView (singleView.cpp) находится макрокоманда INPLEMENT_DYNCREATE. В таблице указываются обработчики сообщений от пунктов меню для печати ID_FILE_PRINT, ID_FILE_PRINT_DIRECT и ID_FILE_PRINT_PREVIEW.
Конструктор и деструктор класса. Конструктор класса CSingleView, созданный MFC AppWizard, не содержит команд. Можно доработать его, чтобы конструктор выполнял инициализацию, связанную с окном просмотра.
Вместе с конструктором класса CSingleView MFC AppWizard определяет деструктор
CSingleView. Сразу после создания проекта деструктор не выполняет никаких действий. В дальнейшем можно использовать его совместно с конструктором CSingleView.
Метод GetDocument. Этот метод возвращает указатель на документ, связанный с данным окном просмотра. Если окно просмотра не связано ни с каким документом, метод возвращает значение NULL.
Метод PreCreateWindow. Виртуальный метод PreCreateWindow определен в классе CWnd. Он вызывается непосредственно перед созданием окна, связанного с объектом класса. В качестве параметра этому методу передается структура типа CREATESTRUCT, определяющая характеристики создаваемого окна. Приложение может изменить данные, записанные в этой структуре, чтобы повлиять на внешний вид создаваемого окна.
Метод OnDraw. Это метод вызывается, когда надо отобразить документ в окне. В качестве параметра pDC методу OnDraw передается указатель на контекст устройства, используя который надо отобразить документ.
В зависимости от ситуации метод OnDraw вызывается для отображения документа в окне просмотра, вывода на печать и предварительного просмотра документа перед печатью. Контекст устройства в каждом случае используется разный.
Используя контексты устройства, переданные параметром pDC, можно вызывать различные методы графического интерфейса, чтобы отобразить информацию в окне.
В том случае, если внешний вид документа при выводе на его печать должен отличаться от вывода в окно, можно вызвать метод IsPrinting контекста устройства, чтобы определить, для чего вызывается OnDraw. Метод IsPrinting возвращает не нулевое значение, если объект контекста, для которого он вызывается, является контекстом принтера. Если контекст представляет другое устройство отображения, например окно, то метод IsPrinting возвращает нуль.
В строке метода OnDraw MFC AppWizard вставляет строку, которая служит для получения указателя pDoc на документ, связанный с данным окном просмотра. Предполагается, что используя указатель pDoc, можно получить данные из документа и отобразить их на экране.
Метод OnPreparePrinting вызывается перед печатью документа. OnBeginPrinting используется для получения шрифтов и других ресурсов GDI. Метод OnEndPrinting используется для освобождения ресурсов, полученных методом OnBeginPainting.
Методы AssertValid и Dump. На время отладки приложения в состав класса CSingleView включаются переопределения виртуальных методов AssertValid и Dump. Эти методы определены в базовом классе CObject и используются при отладке приложения. При окончательном построении приложения эти методы не переопределяются.
Класс главного окна приложения
Класс CMainFrame представляет главное окно приложения. Внутри этого окна отображаются окно просмотра документа, а также панели управления и состояния. Определение и реализация класса CMainFrame расположены в файлах MainFrm.h и MainFrm.cpp.
Класс CMainFrame наследуется от базового класса CFrameWnd, определенного в библиотеке MFC. Как правило, перед программистом не возникает необходимости как-либо дорабатывать класс главного окна приложения, созданный MFC AppWizard.
Шаблон документов приложения создает объекты класса CMainFrame динамически. Для этого в определении класса указана макрокоманда DECLARE_DYNCREATE, объявлен конструктор, не имеющий параметров, а в файле реализации добавлена макрокоманда IMPLEMENT_DYNCREATE.
Таблица сообщений класса. Класс CMainFrame может получать и обрабатывать сообщения, поэтому в определении класса указана макрокоманда DECLARE_MESSAGE_MAP, а в файле реализации класса расположена таблица сообщений.
Сначала в таблице сообщений расположена единственная макрокоманда ON_WM_CREATE. Эта макрокоманда устанавливает для обработки сообщения WM_CREATE метод OnCreate. Сообщение WM_CREATE передается функции окна сразу после его создания, но до того, как окно появится на экране.
Конструктор и деструктор класса. MFC AppWizard определяет конструктор и деструктор класса CMainFrame. Можно расположить в конструкторе и деструкторе код для инициализации и деинициализации объектов класса.
Метод OnCreate. Это метод определяется в классе CWnd следующим образом. Параметр lpCreateStruct этой функции является указателем на объект CREATESTRUCT, содержащей характеристики создаваемого окна.
MFC AppWizard переопределяет метод OnCreate в классе CMainFrame. Поэтому для обработки сообщения WM_CREATE будет вызван именно переопределенный метод OnCreate класса CMainFrame.
Основное назначение метода OnCreate заключается в том, что он сначала вызывает метод OnCreate базового класса CFrameWnd, а затем создает и отображает внутри главного окна панель управления toolbar и панель состояния status bar. Кстати, если из метода OnCreate удалить последние три вызова методов, то этим можно запретить перемещение панели управления.
Метод OnCreate базового класса CFrameWnd выполняет обработку сообщения WM_CREATE по умолчанию и возвращает нулевое значение, если обработка прошла без ошибок.
Панель управления и панель состояния. Самая интересная задача, которую решает метод OnCreate, заключается в отображении панелей управления и состояния. Для панели управления и панели состояния в библиотеке классов MFC предусмотрены два класса CStatusBar и CToolBar.
Рассмотрим самые главные методы, необходимые для работы с панелями управления и состояния.
Панель управления. Класс CToolBar представляет панель управления toolbar. Обычно панель управления содержит несколько кнопок и разделителей между ними. Для панели управления определен специальный ресурс типа TOOLBAR (специальная диалоговая панель.
Чтобы создать панель управления toolbar, следует выполнить следующие действия:
MFC AppWizard создает для приложения панель управления, которую программист может видоизменить по желанию.
Объект для m_wndToolBar класса CToolBar для управления панелью определяется в классе CMainFrame. Этот объект объявлен как protected, поэтому обращаться к нему можно только из класса главного окна приложения CMainFrame.
protected: // control bar embedded members CToolBar m_wndToolBar;
Создание самой панели управления и отображение ее на экране происходит во время обработки метода OnCreate класса CMainFrame.
В качестве родительского окна панели управления методу Create указано ключевое слово this. Таким образом, родительским окном является главное окно приложения, представленное объектом класса CMa inFrame.
Панель состояния. Для управления панелью состояния используется класс CStatusBar. Чтобы создать для окна панель состояния следует выполнить следующие действия:
MFC AppWizard автоматически добавляет к созданному им приложению программный код, служащий для отображения панели состояния.
Объект m_wndStatusBar класса CStatusBar определяется как элемент класса CMainFrame. Это вполне естественно, так как панель состояния принадлежит именно окну класса CMainFrame.
protected: // control bar embedded members CStatusBar m_wndStatusBar;
Создание панели состояния и отображение ее на экране выполняется во время обработки метода OnCreate класса CMainFrame сразу после создания панели управления.
Методы Create и SetIndicators, создающие панель, вызываются в одной строке.
В качестве родительского окна панели состояния методу Create указано ключевое слово this. Таким образом, родительским окном панели состояния, так же как и панели управления, является главное окно приложения, представленное объектом класса CMainFrame.
Информация, которая должна отображаться в панели состояния, определяется идентификаторами, записанными в массиве. Каждый идентификатор представляет текстовую строку из таблицы ресурсов приложения. В приложении single массив indicators, описывающий панель состояния, определен в файле MainFrm.cpp. В этот массив и входят иденификаторы текстовых строк панели состояния.
Метод SetIndicators отображает в панели состояния строки, идентификаторы которых представлены в массиве indicators. При этом первый элемент массива определяет крайнюю левую строку в панели состояния. По умолчанию, строки в панели состояния выравниваются по правой границе. Можно получить доступ к любому элементу панели состояния по его индексу или идентификатору.
Метод PreCreateWindow. Виртуальный метод PreCreateWindow определен в классе CWnd. Он вызывается непосредственно перед созданием окна, связанного с объектом класса. В качестве параметра этому методу передается структура типа CREATESTRUCT, определяющая характеристики создаваемого окна. Приложение может изменить данные, записанные в этой структуре, чтобы повлиять на внешний вид создаваемого окна.
Методы AssertValid и Dump. Когда выполняется построение отладочной версии приложения, в состав класса включается переопределения виртуальных методов AssertValid и Dump. Эти методы определены в базовом классе CObject и используются при отладке приложения.