- •Министерство образования и науки Российской Федерации
- •1. Работа с реестром
- •1.1. Создание - открытие раздела
- •1.2. Чтение параметров раздела реестра
- •1.3. Занесения значения параметра раздела реестра
- •1.4. Закрытие раздела
- •1.5. Удаление раздела
- •2. Диалоговые окна. Определение и назначение
- •2.1. Описание диалогового окна в файле ресурсов
- •2.2. Функция диалогового окна
- •2.3. Вызов модального диалогового окна
- •2.4. Закрытие модального диалогового окна
- •2.5. Вызов немодального диалогового окна
- •2.6. Получения и занесения данных в элементы управления диалогового
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •Приложение Файл reg_dlg.Cpp
- •Файл reg_dlg.Rc
- •Файл resource.H
1.3. Занесения значения параметра раздела реестра
Для занесения параметра раздела реестра необходимо использовать функцию RegSetValueEx. Функция RegSetValueEx сохраняет значение параметра в открытом разделе.
LONG RegSetValueEx(
HKEY hKey, // дескриптор раздела
LPCTSTR lpValueName, // название параметра для установки
DWORD Reserved, // зарезервировано
DWORD dwType, // тип значения
CONST BYTE *lpData, // указатель на значение
DWORD cbData // размер значения
);
hKey - дескриптор открытого раздела или любое из предопределенных значений дескрипторов
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpValueName - указывает на строку, содержащую название параметра для установки, если такого параметра пока не существует, то создает его.
Reserved - зарезервировано, должно быть равным нулю.
dwType - тип заносимого значения (см. RegQueryValueEx)
lpData - указывает на буфер с данными, которые будут хранится в данном параметре
cbData - размер значения в байтах
Возвращает ERROR_SUCCESS в случае успешного завершения, в противном случае возвращает ненулевой код ошибки.
Пример вызова:
RegSetValueEx(hKeyRes, ValueName, NULL, REG_SZ, (unsigned char*)s_key, lstrlen(s_key));
После того, как работа с разделом завершена, его следует закрыть с помощью функции RegCloseKey. Функция RegCloseKey освобождает дескриптор заданного раздела.
LONG RegCloseKey( HKEY hKey
// дескриптор открытого раздела для закрытия
);
1.4. Закрытие раздела
В случае успешного завершения возвращает ERROR_SUCCESS, в противном случае возвращает ненулевой код ошибки.
Пример вызова:
/* закрытие раздела реестра */
RegCloseKey(hKeyRes);
1.5. Удаление раздела
Если какой-то раздел уже не требуется вашей программе, его можно удалить с помощью функции RegDeleteKey. Функция RegDeleteKey удаляет раздел и его потомков.
LONG RegDeleteKey(
HKEY hKey, // дескриптор раздела
LPCTSTR lpSubKey // указатель на имя подраздела для удаления
);
hKey - дескриптор открытого раздела или любое из предопределенных значений дескрипторов
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey - указатель на строку, оканчивающуюся нулевым символом, определяющую раздел для удаления, являющийся подразделом hKey. Этот параметр не может быть равен нулю и заданный раздел не может иметь подразделов.
В случае успешного завершения возвращает ERROR_SUCCESS, в противном случае ненулевой код ошибки.
Пример вызова:
/* удаление раздела реестра */
/* параметры
1 - раздел
2 - подраздел
*/
RegDeleteKey (HKEY_LOCAL_MACHINE, SubKey);
2. Диалоговые окна. Определение и назначение
Диалоговое окно представляет собой разновидность окна, в котором пользователю представляется больше возможностей для взаимодействия с приложением. В общем случае, благодаря диалоговым окнам можно выбрать или ввести информацию, которую трудно или вообще невозможно ввести с помощью меню.
Взаимодействие между пользователем и диалоговым окном осуществляется с помощью элементов управления. Элемент управления - особый тип окна ввода или вывода. Он принадлежит окну-владельцу, которым является диалоговое окно. Все версии Windows поддерживают несколько базовых элементов управления, к которым относятся кнопки, контрольные переключатели, селекторные кнопки, списки, поля ввода(редакторы), комбинированные списки, полосы прокрутки и статические элементы и т.д.
Есть два типа диалоговых окон: модальные и немодальные. Наиболее распространенными являются первые. В модальных диалоговых окнах ожидается некоторое действие со стороны пользователя, прежде чем программа сможет продолжить выполнение. Т.е. вы не сможете продолжить работу, пока не нажмете на одну из кнопок в модальном окне, которое вызовет его закрытие. Немодальное диалоговое окно не приостанавливает выполнение программы. Имеется в виду, что в нем не требуется выполнение какого-либо действия для того, чтобы управление было передано другой части программы.