Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Помощь и всплывающие подсказки




Подробные инструкции по созданию справочной системы можно найти во многих источниках, в частности, и в [1,2]. В любом случае проще всего начать с того, что на этапе создания каркаса приложения заказать мастеру подключение контекстной системы помощи. В этом случае будут сгенерированы нужные файлы и программный код, поддерживающий справку. Имейте при этом ввиду, что всякий раз при построении вашего приложения будет вновь создаваться файл справки. В связи с этим при добавлении своих справочных сведений надо или модифицировать файлы (в частности, .rtf) или подключать свой собственный файл, если он строился с использованием какого-либо стороннего продукта.

Теперь о всплывающих подсказках. На вкладке ресурсов рабочего пространства выберите пункт String Table и откройте эту таблицу. Посмотрите, к примеру, на такую строку таблицы:

ID_FILE_CLOSE    57602         Close the active document\nClose

 

Догадались? Текст «Close the active document» выводится в строке статуса, когда выбирается тема Close меню File, а текст «Close» выводится тогда, когда мы подводим курсор мыши к соответствующей кнопке. Кнопка «привязана» к идентификатору ID_FILE_CLOSE в файле ресурсов. Чтобы найти это место, проще всего запустить поиск идентификатора ID_FILE_CLOSE во всех файлах проекта. Можно русифицировать все подсказки так, как описано выше в «Русификации приложений».

 

Использование ini-файла

Большинство приложений, создаваемых с помощью мастеров ИС MVC, имеют theApp – экземпляр класса CWinApp, представляющий собой объект приложение. Этот объект содержит ряд полезных член-данных и методов. Так как этот объект объявляется в глобальной области, то он автоматически конструируется при запуске приложения (еще до начала выполнения функции main()) и разрушается при завершении приложения.

Объект theApp, в частности, поддерживает обработку ini-файла или, как альтернативу, чтение и запись данных приложения в реестр Windows. С точки зрения работы с ini-файлом класс CWinApp содержит следующие компоненты:

· char * m_pszProfileName - имя ini-файла (имя_приложения.ini), не включающее пути;

· CString GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszDefault = NULL );

· UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault );

· BOOL WriteProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nValue );

· BOOL WriteProfileString( LPCTSTR lpszSection, LPCTSTR lpszEntry, LPCTSTR lpszValue );

 

Если Вы разрабатываете не консольное, а оконное приложение, то приведенные выше функции (WriteProfileInt() и др.) «работают» с реестром, а не с ini-файлом. В таком приложении для использования ini-файла надо убрать вызов функции CWinApp::SetRegistryKey() в функции InitInstance(). Если же Вы счастливый обладатель версии Visual Studio 2008 или более поздней, то Вас это не спасет и свои параметры Вы можете сохранять (или извлекать) в реестре Windows. По умолчанию это будет раздел “HKEY_USERS\S-1-5-21-796845957-1343024091-839522115-1003\Software\Local AppWizard-Generated Applications\имя_каталога_проекта”, если Вы не изменяли параметр функции SetRegistryKey(), вызываемой в функции InitInstance() Вашего приложения с помощью приведенных выше функций. Если все же хочется использовать собственный файл, то надо его записывать и читать как обычный текстовый или двоичный файл, формат которого Вы определяете сами.

 

Замечание. На самом деле в среде Visual Studio 2008 тоже можно разрабатывать приложения, применяющие вместо реестра ini-файл, но для этой цели надо использовать функции Win API, имена которых начинаются со слов GetPrivateProfile, например, функция GetPrivateProfileSection(). Microsoft считает их устаревшими и предлагает использовать только для обратной совместимости с 16-разрядными приложениями. Более подробная информация содержится, как всегда, в MSDN.

 

Функции GetProfileString() и GetProfileInt() предназначены для чтения из файла значений ключей строкового и целого типа соответственно, а WriteProfileString() и WriteProfileInt() – для их записи. Данные других типов напрямую не поддерживаются, но их можно преобразовать в строки символов и обрабатывать.

Возвращаемые значения функций GetProfileString() и GetProfileInt() – это прочитанные из файла значения ключей строкового и целого типа соответственно. Если запрашиваемые ключи в файле отсутствуют, то состояние ошибки не возникает и функции возвращают значения по умолчанию lpszDefault и nDefault соответственно.

Функции WriteProfileString() и WriteProfileInt() возвращают значение true в случае успешной записи значения ключа и значение false – в противном случае.

Формальные параметры перечисленных функций имеют следующее назначение:

· lpszSection –имя секции файла;

· lpszEntry – имя ключа, хранящегося в данной секции файла;

· nDefault и lpszDefault – значения ключей по умолчанию (целочисленного и строкового типов соответственно);

· nValue и lpszValue – значения ключей (целочисленного и строкового типов соответственно).

 










Последнее изменение этой страницы: 2018-04-12; просмотров: 453.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...