Шаг 94.
Среда программирования Visual C++.
Поддержка операций с реестром в MFC. Профиль пользователя приложения

    На этом шаге мы приведем перечень функций, предназначенных для работы с реестром.

    Для задания местонахождения параметров профиля пользователя AppWizard добавляет следующую строку в тело функции InitInstance() объекта приложения:

  SetRegistryKey(_T("Local AppWizard-Generated Applications"));

    CWinApp::SetRegistryKey() вызывается с параметром, задающим имя раздела, где будут храниться параметры Вашего приложения. Это подраздел помещается в раздел HKEY_CURRENT_USER\Software. Обязательно замените задаваемое по умолчанию имя (Local АрpWizard-Generated Applications) именем раздела, куда Вы поместите параметры профиля пользователя всех своих приложений. Как правило, для этих целей выбирают название компании, разрабатывающей приложение.


    Замечание. Если Вы удалите из Вашей функции InitInstance() вызов SetRegistryKey(), каркас создаст в каталоге Windows INI-файл и будет использовать его для хранения параметров конфигурации, общих для всех пользователей. INI-файлы - наследие 16-разрядных версий Windows, они не должны применяться в 32-разрядных приложениях.

    Зададим раздел реестра для хранения профиля пользователя приложения МуАрр.


    Примечание. Функция SetRegistryKey() создает подраздел с именем приложения, который будет служить корнем для параметров приложения.

    Для записи профиля пользователя в MFC-приложениях применяются функции управления профилем. Все они являются функциями-членами класса CWinApp:

    Эти функции сохраняют и восстанавливают строковые и целочисленные значения параметров реестра в разделе Вашего приложения. В качестве первых двух аргументов в эти функции передается имя секции (подраздела, вложенного в раздел профиля) и имя параметра. Если раздел или параметр до этого не существовал, он будет создан.

    WriteProfileString() создает параметр типа REG_SZ, a WriteProfileInt() - типа REG_DWORD. Обе эти функции возвращают булево значение, указывающее на успех или неудачу операции записи. На месте третьего аргумента в обе функции передается значение нового параметра.

    Например, строка

    WriteProfileString("Settings",   "User Name",   "Julian");
создаст параметр HKEY_CURRENT_USER\Software\MyCompany\MyApp\Settings\User Name, который получит значение "Julian".

    Функции GetProfileString() и GetProfileInt() возвращают значение данного параметра реестра. Обе они принимают в качестве третьего аргумента значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует.

    На следующем шаге мы рассмотрим управление профилем пользователя.




Предыдущий шаг Содержание Следующий шаг